|
|
@ -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; |
|
|
|
} |
|
|
|
|
|
|
|