aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2015-04-28 16:49:17 +0300
committerArnold D. Robbins <arnold@skeeve.com>2015-04-28 16:49:17 +0300
commit1057acb5715bc1e570c3a67f66847c9ac0f7bd6e (patch)
treed3fe730634cac37611e56124451de15f687a29cb /eval.c
parent7bab0e1ff31ebaf7716fe2716a630c92b8ca8a44 (diff)
parentb4ef28f58688cf3c3a5878c595b6582144ee2cf1 (diff)
downloadegawk-1057acb5715bc1e570c3a67f66847c9ac0f7bd6e.tar.gz
egawk-1057acb5715bc1e570c3a67f66847c9ac0f7bd6e.tar.bz2
egawk-1057acb5715bc1e570c3a67f66847c9ac0f7bd6e.zip
Merge branch 'master' into feature/cmake
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 2d820580..b50bcea8 100644
--- a/eval.c
+++ b/eval.c
@@ -1328,7 +1328,13 @@ setup_frame(INSTRUCTION *pc)
if (m->type == Node_param_list)
m = GET_PARAM(m->param_cnt);
-
+
+ /* $0 needs to be passed by value to a function */
+ if (m == fields_arr[0]) {
+ DEREF(m);
+ m = dupnode(m);
+ }
+
switch (m->type) {
case Node_var_new:
case Node_var_array: