diff options
Diffstat (limited to 'grammar/rainerscript.c')
-rw-r--r-- | grammar/rainerscript.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index 2e066d78..90bbb335 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -1037,8 +1037,9 @@ evalVar(struct cnfvar *var, void *usrptr, struct var *ret) #define FREE_TWO_STRINGS \ if(bMustFree) es_deleteStr(estr_r); \ + if(expr->r->nodetype != 'S' && r.datatype == 'S') es_deleteStr(r.d.estr); \ if(bMustFree2) es_deleteStr(estr_l); \ - FREE_BOTH_RET + if(l.datatype == 'S') es_deleteStr(l.d.estr) /* evaluate an expression. * Note that we try to avoid malloc whenever possible (because of |