aboutsummaryrefslogtreecommitdiffstats
path: root/debug.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2017-11-26 20:41:16 +0200
committerArnold D. Robbins <arnold@skeeve.com>2017-11-26 20:41:16 +0200
commita42eaf5184b2d5e0628bb6afac61745bde138ee4 (patch)
treed6ead227f5897c110693256229e197e7cbc6eaf0 /debug.c
parent1212cdf9eecdec794f2bd608165762a8b2d59ffb (diff)
parentac018ace5fc53299a91d7dcc3e442ef017f4c3af (diff)
downloadegawk-a42eaf5184b2d5e0628bb6afac61745bde138ee4.tar.gz
egawk-a42eaf5184b2d5e0628bb6afac61745bde138ee4.tar.bz2
egawk-a42eaf5184b2d5e0628bb6afac61745bde138ee4.zip
Merge branch 'gawk-4.2-stable'
Diffstat (limited to 'debug.c')
-rw-r--r--debug.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/debug.c b/debug.c
index 9a022669..3e76ae61 100644
--- a/debug.c
+++ b/debug.c
@@ -1299,10 +1299,11 @@ do_set_var(CMDARG *arg, int cmd ATTRIBUTE_UNUSED)
arg = arg->next;
val = arg->a_node;
lhs = get_field(field_num, &assign);
- unref(*lhs);
- *lhs = dupnode(val);
if (assign)
+ /* call assign to copy fields before unref frees $0 */
assign();
+ unref(*lhs);
+ *lhs = dupnode(val);
print_field(field_num);
}
break;