From 8ea8ccb77664ca5b2e7127a20e0150ef86362475 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Fri, 23 Apr 2010 04:21:16 +0000 Subject: [PATCH] Improve upvalue processing --- src/jse/org/luaj/vm2/luajc/JavaGen.java | 30 +++++++++++++++++-------- src/jse/org/luaj/vm2/luajc/Slots.java | 15 +++++++++---- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/jse/org/luaj/vm2/luajc/JavaGen.java b/src/jse/org/luaj/vm2/luajc/JavaGen.java index db29cc5b..95ef1b7a 100644 --- a/src/jse/org/luaj/vm2/luajc/JavaGen.java +++ b/src/jse/org/luaj/vm2/luajc/JavaGen.java @@ -321,22 +321,34 @@ public class JavaGen { * R(A+2)): if R(A+3) ~= nil then R(A+2)=R(A+3) * else pc++ */ - builder.createUpvalues(pc, a+3, c); + // v = stack[a].invoke(varargsOf(stack[a+1],stack[a+2])); + // if ( (o=v.arg1()).isnil() ) + // ++pc; builder.loadLocal(pc, a); builder.loadLocal(pc, a+1); builder.loadLocal(pc, a+2); builder.invoke(2); // varresult on stack - for ( int i=0; i=) R(A)*/ @@ -315,8 +322,8 @@ public class Slots { int o = Lua.GET_OPCODE(i); int sbx = Lua.GETARG_sBx(i); if ( o == Lua.OP_JMP && (pc0 + 1 + sbx == pc1) ) { - for ( int j=0; j