try to fix rem_tlist()

Note:
  struct INPparseTree is an overlay of struct IFparseTree
  very ugly.
This commit is contained in:
rlar 2016-11-05 12:19:19 +01:00
parent c9517c397b
commit d69179ce5e
1 changed files with 12 additions and 8 deletions

View File

@ -1820,12 +1820,16 @@ inp_parse_temper_trees(void)
{ {
struct pt_temper *d; struct pt_temper *d;
for(d = devtlist; d; d = d->next) for(d = devtlist; d; d = d->next) {
INPgetTree(&d->expression, &d->pt, ft_curckt->ci_ckt, NULL); char *expression = d->expression;
INPgetTree(&expression, &d->pt, ft_curckt->ci_ckt, NULL);
}
ft_curckt->devtlist = devtlist; ft_curckt->devtlist = devtlist;
for(d = modtlist; d; d = d->next) for(d = modtlist; d; d = d->next) {
INPgetTree(&d->expression, &d->pt, ft_curckt->ci_ckt, NULL); char *expression = d->expression;
INPgetTree(&expression, &d->pt, ft_curckt->ci_ckt, NULL);
}
ft_curckt->modtlist = modtlist; ft_curckt->modtlist = modtlist;
} }
@ -1843,15 +1847,15 @@ void
rem_tlist(void) rem_tlist(void)
{ {
if (devtlist) { if (devtlist) {
// tfree(devtlist->expression); tfree(devtlist->expression);
wl_free(devtlist->wl); wl_free(devtlist->wl);
/*should we remove the parse tree pt ?*/ INPfreeTree((IFparseTree *) devtlist->pt);
tfree(devtlist); tfree(devtlist);
} }
if (modtlist) { if (modtlist) {
// tfree(modtlist->expression); tfree(modtlist->expression);
wl_free(modtlist->wl); wl_free(modtlist->wl);
/*should we remove the parse tree pt ?*/ INPfreeTree((IFparseTree *) modtlist->pt);
tfree(modtlist); tfree(modtlist);
} }
} }