diff --git a/src/core/org/luaj/vm2/LuaBoolean.java b/src/core/org/luaj/vm2/LuaBoolean.java index 31edbc3a..1dfe9113 100644 --- a/src/core/org/luaj/vm2/LuaBoolean.java +++ b/src/core/org/luaj/vm2/LuaBoolean.java @@ -21,8 +21,11 @@ ******************************************************************************/ 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; public final boolean v; diff --git a/src/core/org/luaj/vm2/LuaNil.java b/src/core/org/luaj/vm2/LuaNil.java index 2c1ff6c1..5068b43b 100644 --- a/src/core/org/luaj/vm2/LuaNil.java +++ b/src/core/org/luaj/vm2/LuaNil.java @@ -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() {} diff --git a/src/core/org/luaj/vm2/LuaValue.java b/src/core/org/luaj/vm2/LuaValue.java index 9e8ab277..33547b14 100644 --- a/src/core/org/luaj/vm2/LuaValue.java +++ b/src/core/org/luaj/vm2/LuaValue.java @@ -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; } diff --git a/src/core/org/luaj/vm2/compiler/FuncState.java b/src/core/org/luaj/vm2/compiler/FuncState.java index 95713dc0..85fd5c35 100644 --- a/src/core/org/luaj/vm2/compiler/FuncState.java +++ b/src/core/org/luaj/vm2/compiler/FuncState.java @@ -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) {