Work around a JVM bug involving static initialization.

https://www.blackberry.com/jira/browse/JAVAAPI-1289
This commit is contained in:
Ian Farmer
2010-11-16 00:07:36 +00:00
parent 0a381d1921
commit f9b3180ede
4 changed files with 13 additions and 7 deletions

View File

@@ -21,7 +21,10 @@
******************************************************************************/
package org.luaj.vm2;
public class LuaBoolean extends LuaValue {
public final class LuaBoolean extends LuaValue {
static final LuaBoolean _TRUE = new LuaBoolean(true);
static final LuaBoolean _FALSE = new LuaBoolean(false);
public static LuaValue s_metatable;

View File

@@ -23,6 +23,8 @@ package org.luaj.vm2;
public class LuaNil extends LuaValue {
static final LuaNil _NIL = new LuaNil();
public static LuaValue s_metatable;
LuaNil() {}

View File

@@ -52,10 +52,10 @@ public class LuaValue extends Varargs {
"value",
};
public static final LuaValue NIL = new LuaNil();
public static final LuaBoolean TRUE = new LuaBoolean(true);
public static final LuaBoolean FALSE = new LuaBoolean(false);
public static final LuaValue NONE = new None();
public static final LuaValue NIL = LuaNil._NIL;
public static final LuaBoolean TRUE = LuaBoolean._TRUE;
public static final LuaBoolean FALSE = LuaBoolean._FALSE;
public static final LuaValue NONE = None._NONE;
public static final LuaNumber ZERO = LuaInteger.valueOf(0);
public static final LuaNumber ONE = LuaInteger.valueOf(1);
public static final LuaNumber MINUSONE = LuaInteger.valueOf(-1);
@@ -521,6 +521,7 @@ public class LuaValue extends Varargs {
// empty varargs
private static final class None extends LuaNil {
static None _NONE = new None();
public LuaValue arg(int i) { return NIL; }
public int narg() { return 0; }
public LuaValue arg1() { return NIL; }

View File

@@ -461,11 +461,11 @@ public class FuncState extends LuaC {
}
int boolK(boolean b) {
return this.addk((b ? LuaValue.TRUE : LuaBoolean.FALSE));
return this.addk((b ? LuaValue.TRUE : LuaValue.FALSE));
}
int nilK() {
return this.addk(LuaNil.NIL);
return this.addk(LuaValue.NIL);
}
void setreturns(expdesc e, int nresults) {