From 134ebfa751bf8083e36f0707b32a78cf2ba7ac5f Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Thu, 3 Sep 2020 14:42:18 +0200 Subject: [PATCH] Call dynstr_init on dynstr_free --- dynstr.c | 2 +- include/dynstr.h | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dynstr.c b/dynstr.c index 97f03bc..2455031 100644 --- a/dynstr.c +++ b/dynstr.c @@ -141,6 +141,6 @@ void dynstr_free(struct dynstr *const d) if (d->str) { free(d->str); - memset(d, 0, sizeof *d); + dynstr_init(d); } } diff --git a/include/dynstr.h b/include/dynstr.h index 7283de5..d667e03 100644 --- a/include/dynstr.h +++ b/include/dynstr.h @@ -131,9 +131,11 @@ enum dynstr_err dynstr_dup(struct dynstr *dst, const struct dynstr *src); /** * This function frees memory used by the dynamic string. * @param d Dynamic string to be freed. - * @attention Attempting to call this function on an uninitialized or empty - * instance is undefined behaviour. - * @attention Parameters inside the struct are reset once memory is freed. + * @note This function does nothing on empty, initialized instances. + * @attention Calling this function on an uninitialized instance leads to + * undefined behaviour. + * @attention Once memory is freed, @ref dynstr_init is called so it can be + * used again. */ void dynstr_free(struct dynstr *d);