From c4e23989f368581ae0ae7adf2a631e6fd220ab86 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 3 Apr 2020 18:31:31 +0200 Subject: [PATCH] Don't us atexit(), but delete memory during 'quit' --- src/frontend/misccoms.c | 3 +++ src/frontend/trannoise/wallace.c | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/frontend/misccoms.c b/src/frontend/misccoms.c index 40f35ede9..776526ef0 100644 --- a/src/frontend/misccoms.c +++ b/src/frontend/misccoms.c @@ -34,6 +34,7 @@ extern char history_file[]; #ifdef SHARED_MODULE extern void rem_controls(void); +extern void destroy_wallace(void); #endif extern IFsimulator SIMinfo; @@ -80,6 +81,8 @@ com_quit(wordlist *wl) cp_remvar("sourcepath"); cp_remvar("program"); cp_remvar("prompt"); + + destroy_wallace(); } rem_controls(); diff --git a/src/frontend/trannoise/wallace.c b/src/frontend/trannoise/wallace.c index 8421b2d19..affdc7579 100644 --- a/src/frontend/trannoise/wallace.c +++ b/src/frontend/trannoise/wallace.c @@ -62,7 +62,7 @@ PolarGauss(double* py1, double* py2) } -static void +void destroy_wallace(void) { tfree(pool1); @@ -93,8 +93,6 @@ initw(void) addrif = TMALLOC(unsigned int, (n + NOTRANS)); addrib = TMALLOC(unsigned int, (n + NOTRANS)); - atexit(destroy_wallace); - /* fill the first pool with normally distributed values */ PolarGauss(&pool1[0], &pool1[1]); for (i = 1; i < n>>1; i++)