diff --git a/src/frontend/com_fft.c b/src/frontend/com_fft.c index bb8e7a69a..f63305a4a 100644 --- a/src/frontend/com_fft.c +++ b/src/frontend/com_fft.c @@ -166,7 +166,7 @@ com_fft(wordlist *wl) ngood++; } } - + free_pnode_o(first_name); /* h_vogt 081206 */ if (!ngood) { return; } @@ -240,7 +240,6 @@ com_fft(wordlist *wl) tfree(tdvec); tfree(fdvec); - free_pnode(first_name); } diff --git a/src/frontend/com_fft.h b/src/frontend/com_fft.h index ff72520a5..1a3a55656 100644 --- a/src/frontend/com_fft.h +++ b/src/frontend/com_fft.h @@ -6,6 +6,8 @@ #ifndef FFT_H_INCLUDED #define FFT_H_INCLUDED +extern void free_pnode_o(struct pnode *t); + void com_fft(wordlist *wl); static void fftext(float*, float*, long int, int); diff --git a/src/frontend/parse.c b/src/frontend/parse.c index b8f31add7..a249f0e1c 100644 --- a/src/frontend/parse.c +++ b/src/frontend/parse.c @@ -952,3 +952,17 @@ free_pnode_x(struct pnode *t) } } +/* here is the original free_node, which is needed in spec.c and com_fft.c */ +void +free_pnode_o(struct pnode *t) +{ + if (!t) + return; + free_pnode(t->pn_left); + free_pnode(t->pn_right); + free_pnode(t->pn_next); + tfree(t); +} + + + diff --git a/src/frontend/spec.c b/src/frontend/spec.c index 5c889b85a..5ea194efd 100644 --- a/src/frontend/spec.c +++ b/src/frontend/spec.c @@ -188,7 +188,7 @@ com_spec(wordlist *wl) ngood++; } } -/* free_pnode(first_name); h_vogt 081206 */ + free_pnode_o(first_name); /* h_vogt 081206 */ if (!ngood) { tfree(win); return; @@ -272,7 +272,6 @@ com_spec(wordlist *wl) tfree(dc); tfree(tdvec); tfree(fdvec); - free_pnode(first_name); #ifdef KEEPWINDOW f = alloc(struct dvec); diff --git a/src/frontend/spec.h b/src/frontend/spec.h index c2843cfd7..6fbb89a20 100644 --- a/src/frontend/spec.h +++ b/src/frontend/spec.h @@ -11,5 +11,6 @@ extern void SetAnalyse( char * Analyse, int Percent); #endif void com_spec(wordlist *wl); +extern void free_pnode_o(struct pnode *t); #endif