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 | luajit-aef4edddbabb9b510541abd131f9298a25a52e7d.tar.gz luajit-aef4edddbabb9b510541abd131f9298a25a52e7d.tar.bz2 luajit-aef4edddbabb9b510541abd131f9298a25a52e7d.zip |
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) | |||
2207 | bcemit_nil(fs, reg, (BCReg)extra); | 2207 | bcemit_nil(fs, reg, (BCReg)extra); |
2208 | } | 2208 | } |
2209 | } | 2209 | } |
2210 | if (nexps > nvars) | ||
2211 | ls->fs->freereg -= nexps - nvars; /* Drop leftover regs. */ | ||
2210 | } | 2212 | } |
2211 | 2213 | ||
2212 | /* Recursively parse assignment statement. */ | 2214 | /* Recursively parse assignment statement. */ |
@@ -2240,8 +2242,6 @@ static void parse_assignment(LexState *ls, LHSVarList *lh, BCReg nvars) | |||
2240 | return; | 2242 | return; |
2241 | } | 2243 | } |
2242 | assign_adjust(ls, nvars, nexps, &e); | 2244 | assign_adjust(ls, nvars, nexps, &e); |
2243 | if (nexps > nvars) | ||
2244 | ls->fs->freereg -= nexps - nvars; /* Drop leftover regs. */ | ||
2245 | } | 2245 | } |
2246 | /* Assign RHS to LHS and recurse downwards. */ | 2246 | /* Assign RHS to LHS and recurse downwards. */ |
2247 | expr_init(&e, VNONRELOC, ls->fs->freereg-1); | 2247 | expr_init(&e, VNONRELOC, ls->fs->freereg-1); |