summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-10-22 21:15:44 +0100
committerLars Wirzenius <liw@liw.fi>2010-10-22 21:15:44 +0100
commit0e8324567b8f9cf7263619857c3c392d004c9fec (patch)
tree8b6e6eb14a7c4cc733cf54a18a8dc668ee41c229
parent9e78e76f3f4997b481231a29ae19067b79708f2a (diff)
downloaddynstr-0e8324567b8f9cf7263619857c3c392d004c9fec.tar.gz
Implement dynstr_free, and use it in one location.
valgrind now reports one fewer leak.
-rw-r--r--dynstr.c9
-rw-r--r--unittests.c1
2 files changed, 10 insertions, 0 deletions
diff --git a/dynstr.c b/dynstr.c
index 8110665..b575226 100644
--- a/dynstr.c
+++ b/dynstr.c
@@ -118,6 +118,15 @@ Dynstr *dynstr_new_from_constant_memory(const void *mem, size_t size)
return new(mem, size, false);
}
+void dynstr_free(Dynstr *dynstr)
+{
+ if (dynstr) {
+ if (dynstr->dynamic)
+ free((void *) dynstr->mem);
+ free(dynstr);
+ }
+}
+
size_t dynstr_len(Dynstr *dynstr)
{
return dynstr->size;
diff --git a/unittests.c b/unittests.c
index d9be8b8..4fc121d 100644
--- a/unittests.c
+++ b/unittests.c
@@ -162,6 +162,7 @@ static int test_empty_string_is_empty(void)
dynstr = dynstr_new_empty();
FAIL_UNLESS_EQUAL(dynstr_len(dynstr), 0);
FAIL_UNLESS_EQUAL(dynstr_is_empty(dynstr), true);
+ dynstr_free(dynstr);
return true;
}