diff options
Diffstat (limited to 'src/zunsetup.c')
| -rw-r--r-- | src/zunsetup.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/zunsetup.c b/src/zunsetup.c index 184f96f..9926354 100644 --- a/src/zunsetup.c +++ b/src/zunsetup.c @@ -9,14 +9,20 @@ zunsetup(void) if (libzahl_set_up) { libzahl_set_up = 0; #define X(x)\ - zfree(x); + free(x->chars); LIST_TEMPS; #undef X #define X(x, f, v)\ - zfree(x); + free(x->chars); LIST_CONSTS; #undef X for (i = BITS_PER_CHAR; i--;) - zfree(libzahl_tmp_divmod_ds[i]); + free(libzahl_tmp_divmod_ds[i]->chars); + + for (i = sizeof(libzahl_pool) / sizeof(*libzahl_pool); i--;) { + while (libzahl_pool_n[i]--) + free(libzahl_pool[i][libzahl_pool_n[i]]); + free(libzahl_pool[i]); + } } } |
