diff options
Diffstat (limited to 'debug.c')
-rw-r--r-- | debug.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1270,6 +1270,8 @@ do_set_var(CMDARG *arg, int cmd ATTRIBUTE_UNUSED) arg = arg->next; val = arg->a_node; newval = dupnode(val); + // subs should not be freed, so + // use dupnode in call to assoc_set. assoc_set(r, dupnode(subs), newval); fprintf(out_fp, "%s[\"%.*s\"] = ", name, (int) subs->stlen, subs->stptr); valinfo(newval, fprintf, out_fp); @@ -1280,6 +1282,8 @@ do_set_var(CMDARG *arg, int cmd ATTRIBUTE_UNUSED) array = make_array(); array->vname = estrdup(subs->stptr, subs->stlen); array->parent_array = r; + // subs should not be freed, so + // use dupnode in call to assoc_set. assoc_set(r, dupnode(subs), array); r = array; } else if (value->type != Node_var_array) { |