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