commit a598804a0435a53538c8ab6c74182347b797ae9b
parent 6c8e652aa6b5bf7018ff74473a6ef5bb58e4890e
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Tue, 17 Jul 2001 11:30:22 -0300
small bug in luaK_self (side effects)
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/lcode.c b/lcode.c
@@ -1,5 +1,5 @@
/*
-** $Id: lcode.c,v 1.75 2001/06/12 14:36:48 roberto Exp roberto $
+** $Id: lcode.c,v 1.76 2001/06/15 20:36:57 roberto Exp roberto $
** Code generator for Lua
** See Copyright Notice in lua.h
*/
@@ -462,11 +462,14 @@ void luaK_storevar (FuncState *fs, expdesc *var, expdesc *exp) {
void luaK_self (FuncState *fs, expdesc *e, expdesc *key) {
+ int func;
luaK_exp2anyreg(fs, e);
freeexp(fs, e);
+ func = fs->freereg;
luaK_reserveregs(fs, 2);
- luaK_codeABC(fs, OP_SELF, fs->freereg-2, e->u.i.info, luaK_exp2RK(fs, key));
- e->u.i.info = fs->freereg-2;
+ luaK_codeABC(fs, OP_SELF, func, e->u.i.info, luaK_exp2RK(fs, key));
+ freeexp(fs, key);
+ e->u.i.info = func;
e->k = VNONRELOC;
}