diff --git a/src/core/org/luaj/vm2/LuaTable.java b/src/core/org/luaj/vm2/LuaTable.java index f336c6f3..387e4d8a 100644 --- a/src/core/org/luaj/vm2/LuaTable.java +++ b/src/core/org/luaj/vm2/LuaTable.java @@ -30,7 +30,7 @@ public class LuaTable extends LuaValue { protected LuaValue[] array; protected LuaValue[] hashKeys; protected LuaValue[] hashValues; - private int hashEntries; + protected int hashEntries; protected LuaValue m_metatable; public LuaTable() { @@ -170,7 +170,7 @@ public class LuaTable extends LuaValue { return hashget( key ); } - private LuaValue hashget(LuaValue key) { + protected LuaValue hashget(LuaValue key) { if ( hashEntries > 0 ) { LuaValue v = hashValues[hashFindSlot(key)]; return v!=null? v: NIL; diff --git a/src/core/org/luaj/vm2/LuaValue.java b/src/core/org/luaj/vm2/LuaValue.java index 84f2deb6..4bdf6808 100644 --- a/src/core/org/luaj/vm2/LuaValue.java +++ b/src/core/org/luaj/vm2/LuaValue.java @@ -317,8 +317,9 @@ public class LuaValue extends Varargs { // lua number/string conversion public LuaString strvalue() { typerror("strValue"); return null; } - public LuaValue strongkey() { return this; } + public LuaValue strongkey() { return strongvalue(); } public LuaValue strongvalue() { return this; } + public boolean isweaknil() { return false; } // conversion from java values public static LuaBoolean valueOf(boolean b) { return b? LuaValue.TRUE: FALSE; }; diff --git a/src/core/org/luaj/vm2/WeakTable.java b/src/core/org/luaj/vm2/WeakTable.java index 0b602961..87f770ef 100644 --- a/src/core/org/luaj/vm2/WeakTable.java +++ b/src/core/org/luaj/vm2/WeakTable.java @@ -269,7 +269,6 @@ public class WeakTable extends LuaTable { this.weakvalue = weakvalue; } - // when looking up the value, look in the keys metatable public LuaValue strongvalue() { LuaValue key = weakkey.strongkey(); if ( key.isnil() )