Mercurial > dovecot > core-2.2
changeset 3356:02479b3894cc HEAD
Added i_free_and_null() macro and first use case.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 03 May 2005 20:02:42 +0300 |
parents | ab3b9ed3a1a5 |
children | 2d8874b023ea |
files | src/lib/failures.c src/lib/imem.h |
diffstat | 2 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/failures.c Tue May 03 20:02:24 2005 +0300 +++ b/src/lib/failures.c Tue May 03 20:02:42 2005 +0300 @@ -438,9 +438,6 @@ log_info_fd = stderr; } - i_free(log_prefix); - log_prefix = NULL; - - i_free(log_stamp_format); - log_stamp_format = NULL; + i_free_and_null(log_prefix); + i_free_and_null(log_stamp_format); }
--- a/src/lib/imem.h Tue May 03 20:02:24 2005 +0300 +++ b/src/lib/imem.h Tue May 03 20:02:42 2005 +0300 @@ -10,12 +10,19 @@ void *i_malloc(size_t size); void *i_realloc(void *mem, size_t old_size, size_t new_size); +/* Free the memory. Currently it also sets memory to NULL, but that shouldn't + be relied on as it's only extra safety check. It might as well be later + changed to some invalid pointer causing segfault, or removed completely + in some "optimization".. */ #define i_free(mem) \ STMT_START { \ p_free(default_pool, mem); \ (mem) = NULL; \ } STMT_END +/* A macro that's guaranteed to set mem = NULL. */ +#define i_free_and_null(mem) i_free(mem) + /* string functions */ char *i_strdup(const char *str); char *i_strdup_empty(const char *str); /* like i_strdup(), but if str == "", return NULL */