fix gettable logic

This commit is contained in:
James Roseborough
2008-05-23 23:19:22 +00:00
parent 6e03c38e39
commit d383b4703f

View File

@@ -553,15 +553,17 @@ public class LuaState extends Lua {
case LuaState.OP_GETGLOBAL: { case LuaState.OP_GETGLOBAL: {
b = LuaState.GETARG_Bx(i); b = LuaState.GETARG_Bx(i);
key = k[b]; key = k[b];
table = cl.env; table = cl.env;
this.stack[base + a] = luaV_gettable(table, key); val = luaV_gettable(table, key);
this.stack[base + a] = val;
continue; continue;
} }
case LuaState.OP_GETTABLE: { case LuaState.OP_GETTABLE: {
b = LuaState.GETARG_B(i); b = LuaState.GETARG_B(i);
key = GETARG_RKC(k, i); key = GETARG_RKC(k, i);
table = this.stack[base + b]; table = this.stack[base + b];
this.stack[base + a] = luaV_gettable(table, key); val = luaV_gettable(table, key);
this.stack[base + a] = val;
continue; continue;
} }
case LuaState.OP_SETGLOBAL: { case LuaState.OP_SETGLOBAL: {
@@ -593,11 +595,9 @@ public class LuaState extends Lua {
case LuaState.OP_SELF: { case LuaState.OP_SELF: {
rkb = GETARG_RKB(k, i); rkb = GETARG_RKB(k, i);
rkc = GETARG_RKC(k, i); rkc = GETARG_RKC(k, i);
this.stack[base + a] = luaV_gettable(rkb, rkc); val = luaV_gettable(rkb, rkc);
this.stack[base + a] = val;
this.stack[base + a + 1] = rkb; this.stack[base + a + 1] = rkb;
// StkId rb = RB(i);
// setobjs2s(L, ra+1, rb);
// Protect(luaV_gettable(L, rb, RKC(i), ra));
continue; continue;
} }
case LuaState.OP_ADD: case LuaState.OP_ADD: