From d69179ce5e857bb698da36c8ae2d7630c68cb5a1 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 5 Nov 2016 12:19:19 +0100 Subject: [PATCH] try to fix rem_tlist() Note: struct INPparseTree is an overlay of struct IFparseTree very ugly. --- src/frontend/inp.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/frontend/inp.c b/src/frontend/inp.c index 78fba68cc..8e6b47edd 100644 --- a/src/frontend/inp.c +++ b/src/frontend/inp.c @@ -1820,12 +1820,16 @@ inp_parse_temper_trees(void) { struct pt_temper *d; - for(d = devtlist; d; d = d->next) - INPgetTree(&d->expression, &d->pt, ft_curckt->ci_ckt, NULL); + for(d = devtlist; d; d = d->next) { + char *expression = d->expression; + INPgetTree(&expression, &d->pt, ft_curckt->ci_ckt, NULL); + } ft_curckt->devtlist = devtlist; - for(d = modtlist; d; d = d->next) - INPgetTree(&d->expression, &d->pt, ft_curckt->ci_ckt, NULL); + for(d = modtlist; d; d = d->next) { + char *expression = d->expression; + INPgetTree(&expression, &d->pt, ft_curckt->ci_ckt, NULL); + } ft_curckt->modtlist = modtlist; } @@ -1843,15 +1847,15 @@ void rem_tlist(void) { if (devtlist) { - // tfree(devtlist->expression); + tfree(devtlist->expression); wl_free(devtlist->wl); - /*should we remove the parse tree pt ?*/ + INPfreeTree((IFparseTree *) devtlist->pt); tfree(devtlist); } if (modtlist) { - // tfree(modtlist->expression); + tfree(modtlist->expression); wl_free(modtlist->wl); - /*should we remove the parse tree pt ?*/ + INPfreeTree((IFparseTree *) modtlist->pt); tfree(modtlist); } }