diff --git a/src/core/org/luaj/vm2/LuaString.java b/src/core/org/luaj/vm2/LuaString.java index 4bacc44e..3eabe7f5 100644 --- a/src/core/org/luaj/vm2/LuaString.java +++ b/src/core/org/luaj/vm2/LuaString.java @@ -25,8 +25,8 @@ import java.io.ByteArrayInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.ref.WeakReference; -import org.luaj.vm2.lib.MathLib; import org.luaj.vm2.lib.StringLib; public class LuaString extends LuaValue { @@ -37,11 +37,36 @@ public class LuaString extends LuaValue { public final int m_offset; public final int m_length; + private static final int STRINGCACHE_POW2 = 10; + private static final WeakReference[] stringcache + = new WeakReference[1<