diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-01-25 17:04:12 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-02-15 20:13:44 -0500 |
commit | 4dc228e35bbedb6f451a621db4a756ead9560a76 (patch) | |
tree | 36d6629b98182f796abeeaab94215ae4cd4e9e74 /src/common | |
parent | 7a74b3663fdaa40fc84e48990d15953a8f46a2bf (diff) | |
download | tor-4dc228e35bbedb6f451a621db4a756ead9560a76.tar.gz tor-4dc228e35bbedb6f451a621db4a756ead9560a76.zip |
Remove workaround code for systems where free(NULL) is busted.
Add an autoconf test to make sure we won't regret it.
Closes ticket 24484.
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/util.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/common/util.h b/src/common/util.h index 2ee0ea28cd..653c154aba 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -73,9 +73,9 @@ extern int dmalloc_free(const char *file, const int line, void *pnt, } \ STMT_END #else /* !(defined(USE_DMALLOC)) */ -/** Release memory allocated by tor_malloc, tor_realloc, tor_strdup, etc. - * Unlike the free() function, tor_free() will still work on NULL pointers, - * and it sets the pointer value to NULL after freeing it. +/** Release memory allocated by tor_malloc, tor_realloc, tor_strdup, + * etc. Unlike the free() function, the tor_free() macro sets the + * pointer value to NULL after freeing it. * * This is a macro. If you need a function pointer to release memory from * tor_malloc(), use tor_free_(). @@ -88,17 +88,13 @@ extern int dmalloc_free(const char *file, const int line, void *pnt, #ifdef __GNUC__ #define tor_free(p) STMT_BEGIN \ typeof(&(p)) tor_free__tmpvar = &(p); \ - if (PREDICT_LIKELY((*tor_free__tmpvar)!=NULL)) { \ - raw_free(*tor_free__tmpvar); \ - *tor_free__tmpvar=NULL; \ - } \ + raw_free(*tor_free__tmpvar); \ + *tor_free__tmpvar=NULL; \ STMT_END #else #define tor_free(p) STMT_BEGIN \ - if (PREDICT_LIKELY((p)!=NULL)) { \ - raw_free(p); \ - (p)=NULL; \ - } \ + raw_free(p); \ + (p)=NULL; \ STMT_END #endif #endif /* defined(USE_DMALLOC) */ |