aboutsummaryrefslogtreecommitdiff
path: root/lcode.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2001-07-17 11:30:44 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2001-07-17 11:30:44 -0300
commita598804a0435a53538c8ab6c74182347b797ae9b (patch)
tree2d67c33b18d5efd74bfb0727aaeff6d1c085b41c /lcode.c
parent6c8e652aa6b5bf7018ff74473a6ef5bb58e4890e (diff)
downloadlua-a598804a0435a53538c8ab6c74182347b797ae9b.tar.gz
lua-a598804a0435a53538c8ab6c74182347b797ae9b.tar.bz2
lua-a598804a0435a53538c8ab6c74182347b797ae9b.zip
small bug in luaK_self (side effects)
Diffstat (limited to 'lcode.c')
-rw-r--r--lcode.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/lcode.c b/lcode.c
index 84052abf..9410eefa 100644
--- a/lcode.c
+++ b/lcode.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lcode.c,v 1.75 2001/06/12 14:36:48 roberto Exp roberto $ 2** $Id: lcode.c,v 1.76 2001/06/15 20:36:57 roberto Exp roberto $
3** Code generator for Lua 3** Code generator for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -462,11 +462,14 @@ void luaK_storevar (FuncState *fs, expdesc *var, expdesc *exp) {
462 462
463 463
464void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { 464void luaK_self (FuncState *fs, expdesc *e, expdesc *key) {
465 int func;
465 luaK_exp2anyreg(fs, e); 466 luaK_exp2anyreg(fs, e);
466 freeexp(fs, e); 467 freeexp(fs, e);
468 func = fs->freereg;
467 luaK_reserveregs(fs, 2); 469 luaK_reserveregs(fs, 2);
468 luaK_codeABC(fs, OP_SELF, fs->freereg-2, e->u.i.info, luaK_exp2RK(fs, key)); 470 luaK_codeABC(fs, OP_SELF, func, e->u.i.info, luaK_exp2RK(fs, key));
469 e->u.i.info = fs->freereg-2; 471 freeexp(fs, key);
472 e->u.i.info = func;
470 e->k = VNONRELOC; 473 e->k = VNONRELOC;
471} 474}
472 475