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 /src | |
| parent | a7bec69a7593b2887a6d1d8dd13272aa005c36fa (diff) | |
| download | luajit-aef4edddbabb9b510541abd131f9298a25a52e7d.tar.gz luajit-aef4edddbabb9b510541abd131f9298a25a52e7d.tar.bz2 luajit-aef4edddbabb9b510541abd131f9298a25a52e7d.zip | |
Drop leftover regs in 'for' iterator assignment, too.
Diffstat (limited to 'src')
| -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); |
