diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2023-07-03 04:27:49 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2023-07-03 04:27:49 +0300 |
commit | 41a02591b9d199a82bb24c23f3828102375137de (patch) | |
tree | d09d8a10eb2ed5d180a945421b933f673ce7a95c /src/parser.c | |
parent | 69b4bbb8341cfda5d8456ccbf951034d63e4340c (diff) | |
download | sciteco-41a02591b9d199a82bb24c23f3828102375137de.tar.gz |
introduced TECO_DEBUG_CLEANUP to mark destructors that should only be used for debug builds
* There is cleanup that is not strictly necessary, because it only frees memory
which is freed on program termination anyway.
* However, it helps to explicitly free everything for debugging memory leaks via Valgrind.
* The new macro reduces the number of #ifdef statements.
* On NDEBUG, the code of these functions will still be eliminated.
* If functions are referenced only from the destructor, there will be no unused function
warnings, even in NDEBUG.
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/parser.c b/src/parser.c index 910fc7f..7bc683e 100644 --- a/src/parser.c +++ b/src/parser.c @@ -52,13 +52,11 @@ teco_loop_stack_init(void) TECO_DEFINE_ARRAY_UNDO_INSERT_VAL(teco_loop_stack, teco_loop_context_t); TECO_DEFINE_ARRAY_UNDO_REMOVE_INDEX(teco_loop_stack); -#ifndef NDEBUG -static void __attribute__((destructor)) +static void TECO_DEBUG_CLEANUP teco_loop_stack_cleanup(void) { g_array_free(teco_loop_stack, TRUE); } -#endif gboolean teco_machine_input(teco_machine_t *ctx, gchar chr, GError **error) |