From a1e8df5a119bdee48f066aa50bef65ca189fcdf0 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Wed, 11 Aug 2010 00:17:45 +0000 Subject: [PATCH] Improve bytecode generation. --- src/jse/org/luaj/vm2/luajc/BasicBlock.java | 4 +++- src/jse/org/luaj/vm2/luajc/UpvalInfo.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/jse/org/luaj/vm2/luajc/BasicBlock.java b/src/jse/org/luaj/vm2/luajc/BasicBlock.java index 8c702f07..92014402 100644 --- a/src/jse/org/luaj/vm2/luajc/BasicBlock.java +++ b/src/jse/org/luaj/vm2/luajc/BasicBlock.java @@ -113,7 +113,9 @@ public class BasicBlock { break; if ( Lua.GET_OPCODE(code[i+1]) == Lua.OP_JMP ) throw new IllegalArgumentException("OP_LOADBOOL followed by jump at "+i); - break; + visitor.visitBranch( i, i+1 ); + visitor.visitBranch( i, i+2 ); + continue; case Lua.OP_EQ: case Lua.OP_LT: case Lua.OP_LE: diff --git a/src/jse/org/luaj/vm2/luajc/UpvalInfo.java b/src/jse/org/luaj/vm2/luajc/UpvalInfo.java index 6c6f432e..80a5c0ff 100644 --- a/src/jse/org/luaj/vm2/luajc/UpvalInfo.java +++ b/src/jse/org/luaj/vm2/luajc/UpvalInfo.java @@ -61,7 +61,7 @@ public class UpvalInfo { // check for previous assignment loop: while ( true ) { // invalid values terminate search - if ( v == VarInfo.INVALID ) + if ( v == null || v == VarInfo.INVALID ) return; // basic block for nil values is initial block