diff options
author | Mike Pall <mike> | 2016-06-27 14:09:36 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2016-06-27 14:09:36 +0200 |
commit | aef4edddbabb9b510541abd131f9298a25a52e7d (patch) | |
tree | b80d1f9697cbb9d774b77c2568407e33c95289c1 | |
parent | a7bec69a7593b2887a6d1d8dd13272aa005c36fa (diff) | |
download | luajit2-aef4edddbabb9b510541abd131f9298a25a52e7d.tar.gz |
Drop leftover regs in 'for' iterator assignment, too.
-rw-r--r-- | src/lj_parse.c | 4 |
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); |