summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2016-06-27 14:09:36 +0200
committerMike Pall <mike>2016-06-27 14:09:36 +0200
commitaef4edddbabb9b510541abd131f9298a25a52e7d (patch)
treeb80d1f9697cbb9d774b77c2568407e33c95289c1
parenta7bec69a7593b2887a6d1d8dd13272aa005c36fa (diff)
downloadluajit2-aef4edddbabb9b510541abd131f9298a25a52e7d.tar.gz
Drop leftover regs in 'for' iterator assignment, too.
-rw-r--r--src/lj_parse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_parse.c b/src/lj_parse.c
index 2a601f1d..6b5f12fb 100644
--- a/src/lj_parse.c
+++ b/src/lj_parse.c
@@ -2207,6 +2207,8 @@ static void assign_adjust(LexState *ls, BCReg nvars, BCReg nexps, ExpDesc *e)
bcemit_nil(fs, reg, (BCReg)extra);
}
}
+ if (nexps > nvars)
+ ls->fs->freereg -= nexps - nvars; /* Drop leftover regs. */
}
/* Recursively parse assignment statement. */
@@ -2240,8 +2242,6 @@ static void parse_assignment(LexState *ls, LHSVarList *lh, BCReg nvars)
return;
}
assign_adjust(ls, nvars, nexps, &e);
- if (nexps > nvars)
- ls->fs->freereg -= nexps - nvars; /* Drop leftover regs. */
}
/* Assign RHS to LHS and recurse downwards. */
expr_init(&e, VNONRELOC, ls->fs->freereg-1);