diff --git a/src/core/org/luaj/vm2/LuaClosure.java b/src/core/org/luaj/vm2/LuaClosure.java index 1b059150..7575d7ee 100644 --- a/src/core/org/luaj/vm2/LuaClosure.java +++ b/src/core/org/luaj/vm2/LuaClosure.java @@ -21,8 +21,6 @@ ******************************************************************************/ package org.luaj.vm2; -import org.luaj.vm2.lib.DebugLib; - /** * Extension of {@link LuaFunction} which executes lua bytecode. *
diff --git a/src/core/org/luaj/vm2/LuaValue.java b/src/core/org/luaj/vm2/LuaValue.java index 913d417c..8f964d01 100644 --- a/src/core/org/luaj/vm2/LuaValue.java +++ b/src/core/org/luaj/vm2/LuaValue.java @@ -21,9 +21,6 @@ ******************************************************************************/ package org.luaj.vm2; -import org.luaj.vm2.Varargs.SubVarargs; - - /** * Base class for all concrete lua type values. *
@@ -432,7 +429,7 @@ public class LuaValue extends Varargs {
*/
public boolean isuserdata(Class c) { return false; }
- /** Convert to boolean false if {@link #NIL} or {@link FALSE}, true if anything else
+ /** Convert to boolean false if {@link #NIL} or {@link #FALSE}, true if anything else
* @return Value cast to byte if number or string convertible to number, otherwise 0
* @see #optboolean(boolean)
* @see #checkboolean()
diff --git a/src/jse/org/luaj/vm2/luajc/LuaJC.java b/src/jse/org/luaj/vm2/luajc/LuaJC.java
index 8e09e98f..fa6f82f4 100644
--- a/src/jse/org/luaj/vm2/luajc/LuaJC.java
+++ b/src/jse/org/luaj/vm2/luajc/LuaJC.java
@@ -105,11 +105,12 @@ public class LuaJC implements LuaCompiler {
private static String toStandardJavaClassName( String luachunkname ) {
String stub = toStub( luachunkname );
- String classname = stub.replace('/','.').replaceAll(NON_IDENTIFIER, "_");
- int c = classname.charAt(0);
- if ( c!='_' && !Character.isJavaIdentifierStart(c) )
- classname = "_"+classname;
- return classname;
+ StringBuffer classname = new StringBuffer();
+ for (int i = 0, n = stub.length(); i < n; ++i) {
+ final char c = stub.charAt(i);
+ classname.append((((i == 0) && Character.isJavaIdentifierStart(c)) || ((i > 0) && Character.isJavaIdentifierPart(c)))? c: '_');
+ }
+ return classname.toString();
}
private static String toStandardLuaFileName( String luachunkname ) {
diff --git a/src/jse/org/luaj/vm2/luajc/ProtoInfo.java b/src/jse/org/luaj/vm2/luajc/ProtoInfo.java
index 5bfa9dad..1b1ab08d 100644
--- a/src/jse/org/luaj/vm2/luajc/ProtoInfo.java
+++ b/src/jse/org/luaj/vm2/luajc/ProtoInfo.java
@@ -26,13 +26,13 @@ public class ProtoInfo {
// A main chunk proto info.
public ProtoInfo(Prototype p, String name) {
// For the outer chunk, we have one upvalue which is the environment.
- this(p,name,new UpvalInfo[] { new UpvalInfo() });
+ this(p,name,null);
}
private ProtoInfo(Prototype p, String name, UpvalInfo[] u) {
this.name = name;
this.prototype = p;
- this.upvals = u;
+ this.upvals = u != null? u: new UpvalInfo[] { new UpvalInfo(this) };
this.subprotos = p.p!=null&&p.p.length>0? new ProtoInfo[p.p.length]: null;
// find basic blocks
@@ -364,6 +364,10 @@ public class ProtoInfo {
break;
case Lua.OP_JMP: /* sBx pc+=sBx */
+ a = Lua.GETARG_A( ins );
+ if (a > 0)
+ for ( --a; a