summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vector.c9
-rw-r--r--tests/vector.c49
2 files changed, 27 insertions, 31 deletions
diff --git a/src/vector.c b/src/vector.c
index 24d72b7..385e600 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -112,7 +112,14 @@ vector_new(const size_t value_size, const struct Vector **const out) {
void
vector_free(const struct Vector **const v) {
- assert((*v) != NULL);
+ if (v == NULL) {
+ return;
+ }
+
+ if (*v == NULL) {
+ return;
+ }
+
const void **values = (*v)->values;
freeit((void *)&values);
freeit((void *)v);
diff --git a/tests/vector.c b/tests/vector.c
index 7fae776..1ff270a 100644
--- a/tests/vector.c
+++ b/tests/vector.c
@@ -68,9 +68,7 @@ test_vector_new_with(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -129,9 +127,7 @@ test_vector_new(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -157,12 +153,19 @@ test_vector_free(void) {
test_ok();
}
+ {
+ testing("it can be given null pointers");
- rc = 0;
-out:
- if (v != NULL) {
+ assert(v == NULL);
vector_free(&v);
+ vector_free(NULL);
+
+ test_ok();
}
+
+ rc = 0;
+out:
+ vector_free(&v);
return rc;
}
@@ -207,9 +210,7 @@ test_vector_capacity(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -244,9 +245,7 @@ test_vector_count(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -402,9 +401,7 @@ test_vector_nth(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -494,9 +491,7 @@ test_vector_assign(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -564,9 +559,7 @@ test_vector_push_back(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -636,9 +629,7 @@ test_vector_pop_back(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}
@@ -697,9 +688,7 @@ test_vector_contains(void) {
rc = 0;
out:
- if (v != NULL) {
- vector_free(&v);
- }
+ vector_free(&v);
return rc;
}