diff options
author | Andreas Gruenbacher <agruen@gnu.org> | 2019-06-27 11:02:02 +0200 |
---|---|---|
committer | Andreas Gruenbacher <agruen@gnu.org> | 2019-06-27 11:07:01 +0200 |
commit | 2b584aec9e5f2806b1eccadcabe7e901fcfa0b0a (patch) | |
tree | 95dc64a01fc87c6af87ec332ec919f1151192d55 | |
parent | 9c986353e420ead6e706262bf204d6e03322c300 (diff) | |
download | patch-2b584aec9e5f2806b1eccadcabe7e901fcfa0b0a.tar.gz |
Improve support for memory leak detection
When building with the address sanitizer on, free some more resources before
exiting. (This is unnecessary when not looking for memory leaks.)
* src/patch.c (init_files_to_delete): Add dispose function for freeing
filenames.
-rw-r--r-- | src/patch.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/patch.c b/src/patch.c index 81c7a02..4616a48 100644 --- a/src/patch.c +++ b/src/patch.c @@ -36,6 +36,10 @@ #include <minmax.h> #include <safe.h> +#ifdef __SANITIZE_ADDRESS__ +# define FREE_BEFORE_EXIT +#endif + /* procedures */ static FILE *create_output_file (char const *, int); @@ -1777,10 +1781,20 @@ struct file_to_delete { static gl_list_t files_to_delete; +#ifdef FREE_BEFORE_EXIT +void dispose_file_to_delete (const void *elt) +{ + free ((void *) elt); +} +#else +#define dispose_file_to_delete NULL +#endif + static void init_files_to_delete (void) { - files_to_delete = gl_list_create_empty (GL_LINKED_LIST, NULL, NULL, NULL, true); + files_to_delete = gl_list_create_empty (GL_LINKED_LIST, NULL, NULL, + dispose_file_to_delete, true); } static void |