From 79b0294207f249e429682a41f4736e979557a4a7 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Sun, 25 Apr 2010 15:50:40 +0000 Subject: [PATCH] Refactor string conversions --- names.csv | 6 +- src/core/org/luaj/vm2/Buffer.java | 4 +- src/core/org/luaj/vm2/LocVars.java | 2 +- src/core/org/luaj/vm2/LuaBoolean.java | 2 +- src/core/org/luaj/vm2/LuaDouble.java | 42 +++---- src/core/org/luaj/vm2/LuaError.java | 2 +- src/core/org/luaj/vm2/LuaInteger.java | 10 +- src/core/org/luaj/vm2/LuaNil.java | 4 +- src/core/org/luaj/vm2/LuaString.java | 20 ++-- src/core/org/luaj/vm2/LuaTable.java | 2 +- src/core/org/luaj/vm2/LuaUserdata.java | 2 +- src/core/org/luaj/vm2/LuaValue.java | 22 +++- src/core/org/luaj/vm2/Print.java | 10 +- src/core/org/luaj/vm2/Prototype.java | 2 +- src/core/org/luaj/vm2/UpValue.java | 4 +- src/core/org/luaj/vm2/Varargs.java | 16 ++- src/core/org/luaj/vm2/WeakTable.java | 4 +- src/core/org/luaj/vm2/compiler/LexState.java | 2 +- src/core/org/luaj/vm2/lib/BaseLib.java | 12 +- src/core/org/luaj/vm2/lib/CoroutineLib.java | 2 +- src/core/org/luaj/vm2/lib/DebugLib.java | 18 +-- src/core/org/luaj/vm2/lib/IoLib.java | 16 +-- src/core/org/luaj/vm2/lib/LibFunction.java | 10 +- src/core/org/luaj/vm2/lib/OsLib.java | 6 +- src/core/org/luaj/vm2/lib/PackageLib.java | 10 +- src/core/org/luaj/vm2/lib/StringLib.java | 4 +- src/jme/org/luaj/vm2/lib/jme/JmeIoLib.java | 2 +- .../org/luaj/vm2/lib/jse/CoerceLuaToJava.java | 4 +- src/jse/org/luaj/vm2/lib/jse/JseIoLib.java | 2 +- src/jse/org/luaj/vm2/lib/jse/LuajavaLib.java | 16 +-- src/jse/org/luaj/vm2/luajc/JavaBuilder.java | 2 +- src/jse/org/luaj/vm2/luajc/Slots.java | 8 +- .../org/luaj/vm2/script/LuaScriptEngine.java | 2 +- test/junit/org/luaj/vm2/MetatableTest.java | 18 +-- test/junit/org/luaj/vm2/TableArrayTest.java | 12 +- test/junit/org/luaj/vm2/TableHashTest.java | 104 +++++++++--------- test/junit/org/luaj/vm2/TableTest.java | 12 +- test/junit/org/luaj/vm2/TypeTest.java | 70 ++++++------ .../vm2/compiler/DumpLoadEndianIntTest.java | 4 +- .../luaj/vm2/lib/jse/LuaJavaCoercionTest.java | 14 +-- .../vm2/vm1/Luajvm1CompatibilityTest.java | 2 +- 41 files changed, 267 insertions(+), 239 deletions(-) diff --git a/names.csv b/names.csv index 066caff1..5c6b8f8f 100644 --- a/names.csv +++ b/names.csv @@ -36,7 +36,7 @@ Java Type Coercion Functions,,,,,,,,,,,, ,toint,int,0,0,0,0,this.v,0,this.v | 0,0,0,0 ,tolong,long,0,0,0,0,this.v,0,this.v | 0,0,0,0 ,toshort,short,0,0,0,0,this.v | 0,0,this.v | 0,0,0,0 -,toString,String,"""true""|""false""","""closure: x""","""name""",(str) this.v,(str) this.v,"""nil""",this.v,"""table: x""","""thread: x""","""userdata: x""" +,tojstring,String,"""true""|""false""","""closure: x""","""name""",(str) this.v,(str) this.v,"""nil""",this.v,"""table: x""","""thread: x""","""userdata: x""" ,touserdata,Object,null,null,null,null,null,null,null,null,this,this.instance ,,,LuaBoolean,LuaClosure,LuaFunction,LuaDouble,LuaInteger,LuaNil,LuaString,LuaTable,LuaThread,LuaUserdata @@ -49,7 +49,7 @@ Optional Argument Conversion Functions,,,,,,,,,,,, ,optinteger,LuaInteger,e,e,e,(int) this,this,defval,this | e,e,e,e ,optlong,long,e,e,e,(long) this,this,defval,this | e,e,e,e ,optnumber,LuaNumber,e,e,e,this,this,defval,this | e,e,e,e -,optString,String,e,e,e,(str) this.v,(str) this.v,defval,this,e,e,e +,optjstring,String,e,e,e,(str) this.v,(str) this.v,defval,this,e,e,e ,optstring,LuaString,e,e,e,(str) this.v,(str) this.v,defval,this,e,e,e ,opttable,LuaTable,e,e,e,e,e,defval,e,this,e,e ,optthread,LuaThread,e,e,e,e,e,defval,e,e,this,n @@ -65,7 +65,7 @@ Required Argument Conversion Functions,,,,,,,,,,,, ,checkinteger,LuaInteger,e,e,e,e,this,e,e,e,e,e ,checklong,LuaNumber,e,e,e,this | e,this,e,e,e,e,e ,checknumber,LuaNumber,e,e,e,this,this,e,e,e,e,e -,checkString,String,e,e,e,(str) this.v,(str) this.v,e,(str) this.v,e,e,e +,checkjstring,String,e,e,e,(str) this.v,(str) this.v,e,(str) this.v,e,e,e ,checkstring,LuaString,e,e,e,(str) this.v,(str) this.v,e,this,e,e,e ,checktable,LuaTable,e,e,e,e,e,e,e,this,e,e ,checkthread,LuaThread,e,e,e,e,e,e,e,e,this,e diff --git a/src/core/org/luaj/vm2/Buffer.java b/src/core/org/luaj/vm2/Buffer.java index a828542f..e077d224 100644 --- a/src/core/org/luaj/vm2/Buffer.java +++ b/src/core/org/luaj/vm2/Buffer.java @@ -41,8 +41,8 @@ public final class Buffer { length = 0; } - public final String toString() { - return LuaString.valueOf(bytes, 0, length).toString(); + public final String tojstring() { + return LuaString.valueOf(bytes, 0, length).tojstring(); } public final void append( byte b ) { diff --git a/src/core/org/luaj/vm2/LocVars.java b/src/core/org/luaj/vm2/LocVars.java index 843abb3c..5cb2d003 100644 --- a/src/core/org/luaj/vm2/LocVars.java +++ b/src/core/org/luaj/vm2/LocVars.java @@ -32,7 +32,7 @@ public class LocVars { this.endpc = endpc; } - public String toString() { + public String tojstring() { return varname+" "+startpc+"-"+endpc; } } diff --git a/src/core/org/luaj/vm2/LuaBoolean.java b/src/core/org/luaj/vm2/LuaBoolean.java index 5c609cfd..31edbc3a 100644 --- a/src/core/org/luaj/vm2/LuaBoolean.java +++ b/src/core/org/luaj/vm2/LuaBoolean.java @@ -55,7 +55,7 @@ public class LuaBoolean extends LuaValue { return v; } - public String toString() { + public String tojstring() { return v ? "true" : "false"; } diff --git a/src/core/org/luaj/vm2/LuaDouble.java b/src/core/org/luaj/vm2/LuaDouble.java index ccd151ab..a8175b3f 100644 --- a/src/core/org/luaj/vm2/LuaDouble.java +++ b/src/core/org/luaj/vm2/LuaDouble.java @@ -30,14 +30,10 @@ public class LuaDouble extends LuaNumber { public static final LuaDouble NAN = new LuaDouble( Double.NaN ); public static final LuaDouble POSINF = new LuaDouble( Double.POSITIVE_INFINITY ); public static final LuaDouble NEGINF = new LuaDouble( Double.NEGATIVE_INFINITY ); + public static final String JSTR_NAN = "nan"; + public static final String JSTR_POSINF = "inf"; + public static final String JSTR_NEGINF = "-inf"; - private static Hashtable ALIASES = new Hashtable(); - static { - ALIASES.put( "NaN", "nan" ); - ALIASES.put( "Infinity", "inf" ); - ALIASES.put( "-Infinity", "-inf" ); - } - final double v; public static LuaNumber valueOf(double d) { @@ -135,7 +131,7 @@ public class LuaDouble extends LuaNumber { public String concat_s(LuaValue rhs) { return rhs.concatTo_s(Double.toString(v)); } public String concatTo_s(String lhs) { return lhs + v; } - public String toString() { + public String tojstring() { /* if ( v == 0.0 ) { // never occurs in J2me long bits = Double.doubleToLongBits( v ); @@ -143,23 +139,29 @@ public class LuaDouble extends LuaNumber { } */ long l = (long) v; - if ( l == v ) return Long.toString(l); - String s = Double.toString(v); - Object n = ALIASES.get(s); - return n!=null? (String)n: s; + if ( l == v ) + return Long.toString(l); + if ( Double.isNaN(v) ) + return JSTR_NAN; + if ( Double.isInfinite(v) ) + return (v<0? JSTR_NEGINF: JSTR_POSINF); + return Double.toString(v); } public LuaString strvalue() { - return LuaString.valueOf(toString()); + return LuaString.valueOf(tojstring()); } public LuaString optstring(LuaString defval) { - return LuaString.valueOf(toString()); + return LuaString.valueOf(tojstring()); } - public String optString(String defval) { - long l = (long)v; - return v==l? Long.toString(l): Double.toString(v); + public LuaValue tostring() { + return LuaString.valueOf(tojstring()); + } + + public String optjstring(String defval) { + return tojstring(); } public LuaNumber optnumber(LuaNumber defval) { @@ -182,11 +184,11 @@ public class LuaDouble extends LuaNumber { public LuaNumber checknumber() { return this; } public double checkdouble() { return v; } - public String checkString() { - return toString(); + public String checkjstring() { + return tojstring(); } public LuaString checkstring() { - return LuaString.valueOf(toString()); + return LuaString.valueOf(tojstring()); } } diff --git a/src/core/org/luaj/vm2/LuaError.java b/src/core/org/luaj/vm2/LuaError.java index 20e7e78c..03c3d5b9 100644 --- a/src/core/org/luaj/vm2/LuaError.java +++ b/src/core/org/luaj/vm2/LuaError.java @@ -41,7 +41,7 @@ public class LuaError extends RuntimeException { LuaThread thread = LuaThread.getRunning(); if ( thread.err != null ) { try { - return thread.err.call( LuaValue.valueOf(msg) ).toString(); + return thread.err.call( LuaValue.valueOf(msg) ).tojstring(); } catch ( Throwable t ) { return "error in error handling"; } diff --git a/src/core/org/luaj/vm2/LuaInteger.java b/src/core/org/luaj/vm2/LuaInteger.java index b579d6e9..8729b8b1 100644 --- a/src/core/org/luaj/vm2/LuaInteger.java +++ b/src/core/org/luaj/vm2/LuaInteger.java @@ -66,7 +66,7 @@ public class LuaInteger extends LuaNumber { public LuaInteger optinteger(LuaInteger defval) { return this; } public long optlong(long defval) { return v; } - public String toString() { + public String tojstring() { return Integer.toString(v); } @@ -77,8 +77,12 @@ public class LuaInteger extends LuaNumber { public LuaString optstring(LuaString defval) { return LuaString.valueOf(Integer.toString(v)); } + + public LuaValue tostring() { + return LuaString.valueOf(Integer.toString(v)); + } - public String optString(String defval) { + public String optjstring(String defval) { return Integer.toString(v); } @@ -157,7 +161,7 @@ public class LuaInteger extends LuaNumber { public double checkdouble() { return v; } - public String checkString() { + public String checkjstring() { return String.valueOf(v); } public LuaString checkstring() { diff --git a/src/core/org/luaj/vm2/LuaNil.java b/src/core/org/luaj/vm2/LuaNil.java index 367af705..4369dc7c 100644 --- a/src/core/org/luaj/vm2/LuaNil.java +++ b/src/core/org/luaj/vm2/LuaNil.java @@ -35,7 +35,7 @@ public class LuaNil extends LuaValue { return "nil"; } - public String toString() { + public String tojstring() { return "nil"; } @@ -74,7 +74,7 @@ public class LuaNil extends LuaValue { public LuaNumber optnumber(LuaNumber defval) { return defval; } public LuaTable opttable(LuaTable defval) { return defval; } public LuaThread optthread(LuaThread defval) { return defval; } - public String optString(String defval) { return defval; } + public String optjstring(String defval) { return defval; } public LuaString optstring(LuaString defval) { return defval; } public Object optuserdata(Object defval) { return defval; } public Object optuserdata(Class c, Object defval) { return defval; } diff --git a/src/core/org/luaj/vm2/LuaString.java b/src/core/org/luaj/vm2/LuaString.java index 6982f78a..5ff8a97e 100644 --- a/src/core/org/luaj/vm2/LuaString.java +++ b/src/core/org/luaj/vm2/LuaString.java @@ -98,7 +98,7 @@ public class LuaString extends LuaValue { return "string"; } - public String toString() { + public String tojstring() { return decodeAsUtf8(m_bytes, m_offset, m_length); } @@ -145,8 +145,8 @@ public class LuaString extends LuaValue { public boolean gteq_b( double rhs ) { typerror("attempt to compare string with number"); return false; } // concatenation - public String concat_s(LuaValue rhs) { return rhs.concatTo_s(toString()); } - public String concatTo_s(String lhs) { return lhs + toString(); } + public String concat_s(LuaValue rhs) { return rhs.concatTo_s(tojstring()); } + public String concatTo_s(String lhs) { return lhs + tojstring(); } // string comparison public int strcmp(LuaValue lhs) { return -lhs.strcmp(this); } @@ -230,9 +230,13 @@ public class LuaString extends LuaValue { public LuaString optstring(LuaString defval) { return this; } - - public String optString(String defval) { - return toString(); + + public LuaValue tostring() { + return this; + } + + public String optjstring(String defval) { + return tojstring(); } public LuaString strvalue() { @@ -313,8 +317,8 @@ public class LuaString extends LuaValue { return luaByte( index ); } - public String checkString() { - return toString(); + public String checkjstring() { + return tojstring(); } public LuaString checkstring() { diff --git a/src/core/org/luaj/vm2/LuaTable.java b/src/core/org/luaj/vm2/LuaTable.java index ca21cbcb..0277504a 100644 --- a/src/core/org/luaj/vm2/LuaTable.java +++ b/src/core/org/luaj/vm2/LuaTable.java @@ -121,7 +121,7 @@ public class LuaTable extends LuaValue { m_metatable = metatable; LuaValue mode; if ( m_metatable!=null && (mode=m_metatable.rawget(MODE)).isstring() ) { - String m = mode.toString(); + String m = mode.tojstring(); boolean k = m.indexOf('k')>=0; boolean v = m.indexOf('v')>=0; return changemode(k,v); diff --git a/src/core/org/luaj/vm2/LuaUserdata.java b/src/core/org/luaj/vm2/LuaUserdata.java index e0aaca1a..82935246 100644 --- a/src/core/org/luaj/vm2/LuaUserdata.java +++ b/src/core/org/luaj/vm2/LuaUserdata.java @@ -36,7 +36,7 @@ public class LuaUserdata extends LuaValue { m_metatable = metatable; } - public String toString() { + public String tojstring() { return String.valueOf(m_instance); } diff --git a/src/core/org/luaj/vm2/LuaValue.java b/src/core/org/luaj/vm2/LuaValue.java index c58dd5b0..824804a4 100644 --- a/src/core/org/luaj/vm2/LuaValue.java +++ b/src/core/org/luaj/vm2/LuaValue.java @@ -103,13 +103,19 @@ public class LuaValue extends Varargs { public int toint() { return 0; } public long tolong() { return 0; } public short toshort() { return 0; } - public String toString() { return typename() + ": " + Integer.toHexString(hashCode()); } + public String tojstring() { return typename() + ": " + Integer.toHexString(hashCode()); } public Object touserdata() { return null; } public Object touserdata(Class c) { return null; } + // object tojstring() maps to tojstring() + public String toString() { return tojstring(); } + // type coercion to lua values /** @return NIL if not a number or convertible to a number */ public LuaValue tonumber() { return NIL; } + + /** @return NIL if not a string or number */ + public LuaValue tostring() { return NIL; } // optional argument conversions public boolean optboolean(boolean defval) { typerror("boolean"); return false; } @@ -120,7 +126,7 @@ public class LuaValue extends Varargs { public LuaInteger optinteger(LuaInteger defval) { typerror("integer"); return null; } public long optlong(long defval) { typerror("long"); return 0; } public LuaNumber optnumber(LuaNumber defval) { typerror("number"); return null; } - public String optString(String defval) { typerror("String"); return null; } + public String optjstring(String defval) { typerror("String"); return null; } public LuaString optstring(LuaString defval) { typerror("string"); return null; } public LuaTable opttable(LuaTable defval) { typerror("table"); return null; } public LuaThread optthread(LuaThread defval) { typerror("thread"); return null; } @@ -128,6 +134,9 @@ public class LuaValue extends Varargs { public Object optuserdata(Class c, Object defval) { typerror(c.getName()); return null; } public LuaValue optvalue(LuaValue defval) { return this; } + /** @deprecated - use optjstring() instead */ + public String optString(String defval) { return optjstring(defval); } + // argument type checks public boolean checkboolean() { typerror("boolean"); return false; } public LuaClosure checkclosure() { typerror("closure"); return null; } @@ -137,7 +146,7 @@ public class LuaValue extends Varargs { public LuaInteger checkinteger() { typerror("integer"); return null; } public long checklong() { typerror("long"); return 0; } public LuaNumber checknumber() { typerror("number"); return null; } - public String checkString() { typerror("string"); return null; } + public String checkjstring() { typerror("string"); return null; } public LuaString checkstring() { typerror("string"); return null; } public LuaTable checktable() { typerror("table"); return null; } public LuaThread checkthread() { typerror("thread"); return null; } @@ -145,6 +154,9 @@ public class LuaValue extends Varargs { public Object checkuserdata(Class c) { typerror("userdata"); return null; } public LuaValue checknotnil() { return this; } + /** @deprecated - use checkjstring() instead */ + public String checkString() { return checkjstring(); } + // errors public static LuaValue error(String message) { throw new LuaError(message); } public static LuaValue error(int iarg, String message) { throw new LuaError("arg "+iarg+": "+message); } @@ -441,7 +453,7 @@ public class LuaValue extends Varargs { public LuaValue arg(int i) { return NIL; } public int narg() { return 0; } public LuaValue arg1() { return NIL; } - public String toString() { return "none"; } + public String tojstring() { return "none"; } } // varargs from array @@ -507,7 +519,7 @@ public class LuaValue extends Varargs { public LuaValue arg1() { return v1; } - public String toString() { + public String tojstring() { return "{"+v1+","+v2+"}"; } } diff --git a/src/core/org/luaj/vm2/Print.java b/src/core/org/luaj/vm2/Print.java index 67965c73..37143783 100644 --- a/src/core/org/luaj/vm2/Print.java +++ b/src/core/org/luaj/vm2/Print.java @@ -122,7 +122,7 @@ public class Print extends Lua { static void printValue( PrintStream ps, LuaValue v ) { switch ( v.type() ) { case LuaValue.TSTRING: printString( ps, (LuaString) v ); break; - default: ps.print( v.toString() ); + default: ps.print( v.tojstring() ); } } @@ -356,12 +356,12 @@ public class Print extends Lua { case LuaValue.TSTRING: LuaString s = v.checkstring(); ps.print( s.length() < 48? - s.toString(): - s.substring(0, 32).toString()+"...+"+(s.length()-32)+"b"); + s.tojstring(): + s.substring(0, 32).tojstring()+"...+"+(s.length()-32)+"b"); break; case LuaValue.TFUNCTION: ps.print( ( v instanceof LuaClosure )? - ((LuaClosure)v).p.toString(): v.toString() ); + ((LuaClosure)v).p.tojstring(): v.tojstring() ); break; case LuaValue.TUSERDATA: Object o = v.touserdata(); @@ -370,7 +370,7 @@ public class Print extends Lua { ps.print( n+": "+Integer.toHexString(o.hashCode()) ); break; default: - ps.print(v.toString()); + ps.print(v.tojstring()); } if ( i+1 == top ) ps.print(']'); diff --git a/src/core/org/luaj/vm2/Prototype.java b/src/core/org/luaj/vm2/Prototype.java index 093ce9be..99b30b64 100644 --- a/src/core/org/luaj/vm2/Prototype.java +++ b/src/core/org/luaj/vm2/Prototype.java @@ -44,7 +44,7 @@ public class Prototype { public int maxstacksize; - public String toString() { + public String tojstring() { return source + ":" + linedefined; } diff --git a/src/core/org/luaj/vm2/UpValue.java b/src/core/org/luaj/vm2/UpValue.java index 840b268e..004540b6 100644 --- a/src/core/org/luaj/vm2/UpValue.java +++ b/src/core/org/luaj/vm2/UpValue.java @@ -33,8 +33,8 @@ public final class UpValue { this.index = index; } - public String toString() { - return array[index].toString(); + public String tojstring() { + return array[index].tojstring(); } public final LuaValue getValue() { diff --git a/src/core/org/luaj/vm2/Varargs.java b/src/core/org/luaj/vm2/Varargs.java index db89b4b1..85b6f282 100644 --- a/src/core/org/luaj/vm2/Varargs.java +++ b/src/core/org/luaj/vm2/Varargs.java @@ -83,13 +83,16 @@ public abstract class Varargs { public LuaInteger optinteger(int i, LuaInteger defval) { return arg(i).optinteger(defval); } public long optlong(int i, long defval) { return arg(i).optlong(defval); } public LuaNumber optnumber(int i, LuaNumber defval) { return arg(i).optnumber(defval); } - public String optString(int i, String defval) { return arg(i).optString(defval); } + public String optjstring(int i, String defval) { return arg(i).optjstring(defval); } public LuaString optstring(int i, LuaString defval) { return arg(i).optstring(defval); } public LuaTable opttable(int i, LuaTable defval) { return arg(i).opttable(defval); } public LuaThread optthread(int i, LuaThread defval) { return arg(i).optthread(defval); } public Object optuserdata(int i, Object defval) { return arg(i).optuserdata(defval); } public Object optuserdata(int i, Class c, Object defval) { return arg(i).optuserdata(c,defval); } public LuaValue optvalue(int i, LuaValue defval) { return i>0 && i<=narg()? arg(i): defval; } + + /** @deprecated - use optjstring() instead */ + public String optString(int i, String defval) { return optjstring(i,defval); } // required argument types public boolean checkboolean(int i) { return arg(i).checkboolean(); } @@ -100,7 +103,7 @@ public abstract class Varargs { public LuaInteger checkinteger(int i) { return arg(i).checkinteger(); } public long checklong(int i) { return arg(i).checknumber().tolong(); } public LuaNumber checknumber(int i) { return arg(i).checknumber(); } - public String checkString(int i) { return arg(i).checkString(); } + public String checkjstring(int i) { return arg(i).checkjstring(); } public LuaString checkstring(int i) { return arg(i).checkstring(); } public LuaTable checktable(int i) { return arg(i).checktable(); } public LuaThread checkthread(int i) { return arg(i).checkthread(); } @@ -109,6 +112,8 @@ public abstract class Varargs { public LuaValue checkvalue(int i) { return i<=narg()? arg(i): LuaValue.error("value expected"); } public LuaValue checknotnil(int i) { return arg(i).checknotnil(); } + /** @deprecated - use checkjstring() instead */ + public String checkString(int i) { return checkjstring(i); } public void argcheck(boolean test, int i, String msg) { if (!test) LuaValue.argerror(i,msg); } @@ -123,19 +128,20 @@ public abstract class Varargs { public float tofloat(int i) { return arg(i).tofloat(); } public int toint(int i) { return arg(i).toint(); } public long tolong(int i) { return arg(i).tolong(); } + public String tojstring(int i) { return arg(i).tojstring(); } public short toshort(int i) { return arg(i).toshort(); } public Object touserdata(int i) { return arg(i).touserdata(); } public Object touserdata(int i,Class c) { return arg(i).touserdata(c); } - public String toString() { + public String tojstring() { Buffer sb = new Buffer(); sb.append( "(" ); for ( int i=1,n=narg(); i<=n; i++ ) { if (i>1) sb.append( "," ); - sb.append( arg(i).toString() ); + sb.append( arg(i).tojstring() ); } sb.append( ")" ); - return sb.toString(); + return sb.tojstring(); } public Varargs subargs(final int start) { diff --git a/src/core/org/luaj/vm2/WeakTable.java b/src/core/org/luaj/vm2/WeakTable.java index 4514c5b1..10659bd0 100644 --- a/src/core/org/luaj/vm2/WeakTable.java +++ b/src/core/org/luaj/vm2/WeakTable.java @@ -47,8 +47,8 @@ public class WeakTable extends LuaTable { Object o = ref.get(); return o!=null? (LuaValue)o: NIL; } - public String toString() { - return strongvalue().toString(); + public String tojstring() { + return strongvalue().tojstring(); } } diff --git a/src/core/org/luaj/vm2/compiler/LexState.java b/src/core/org/luaj/vm2/compiler/LexState.java index f09a1737..40247431 100644 --- a/src/core/org/luaj/vm2/compiler/LexState.java +++ b/src/core/org/luaj/vm2/compiler/LexState.java @@ -252,7 +252,7 @@ public class LexState { } void lexerror( String msg, int token ) { - String cid = chunkid( source.toString() ); // TODO: get source name from source + String cid = chunkid( source.tojstring() ); // TODO: get source name from source L.pushfstring( cid+":"+linenumber+": "+msg ); if ( token != 0 ) L.pushfstring( "syntax error: "+msg+" near "+txtToken(token) ); diff --git a/src/core/org/luaj/vm2/lib/BaseLib.java b/src/core/org/luaj/vm2/lib/BaseLib.java index fe092859..85ac8fcd 100644 --- a/src/core/org/luaj/vm2/lib/BaseLib.java +++ b/src/core/org/luaj/vm2/lib/BaseLib.java @@ -145,7 +145,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder { protected LuaValue oncall2(int opcode, LuaValue arg1, LuaValue arg2) { switch ( opcode ) { case 0: // "collectgarbage", // ( opt [,arg] ) -> value - String s = arg1.optString("collect"); + String s = arg1.optjstring("collect"); int result = 0; if ( "collect".equals(s) ) { System.gc(); @@ -161,7 +161,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder { } return NIL; case 1: // "error", // ( message [,level] ) -> ERR - throw new LuaError( arg1.isnil()? null: arg1.toString(), arg2.optint(1) ); + throw new LuaError( arg1.isnil()? null: arg1.tojstring(), arg2.optint(1) ); case 2: // "rawequal", // (v1, v2) -> boolean return valueOf(arg1 == arg2); case 3: { // "setfenv", // (f, table) -> void @@ -194,7 +194,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder { { LuaValue chunk; try { - String filename = args.checkString(1); + String filename = args.checkjstring(1); chunk = loadFile(filename).arg1(); } catch ( IOException e ) { return error(e.getMessage()); @@ -212,7 +212,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder { case 3: // "loadfile", // ( [filename] ) -> chunk | nil, msg { try { - String filename = args.checkString(1); + String filename = args.checkjstring(1); return loadFile(filename); } catch ( Exception e ) { return varargsOf(NIL, valueOf(e.getMessage())); @@ -320,7 +320,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder { } case 14: { // "tostring", // (e) -> value LuaValue arg = args.checkvalue(1); - return arg.type() == LuaValue.TSTRING? arg: valueOf(arg.toString()); + return arg.type() == LuaValue.TSTRING? arg: valueOf(arg.tojstring()); } case 15: { // "tonumber", // (e [,base]) -> value LuaValue arg1 = args.checkvalue(1); @@ -375,7 +375,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder { bytes = null; return -1; } - bytes = s.toString().getBytes(); + bytes = s.tojstring().getBytes(); offset = 0; } if ( offset >= bytes.length ) diff --git a/src/core/org/luaj/vm2/lib/CoroutineLib.java b/src/core/org/luaj/vm2/lib/CoroutineLib.java index e757538c..08bdce13 100644 --- a/src/core/org/luaj/vm2/lib/CoroutineLib.java +++ b/src/core/org/luaj/vm2/lib/CoroutineLib.java @@ -83,7 +83,7 @@ public class CoroutineLib extends ZeroArgFunction { if ( result.arg1().toboolean() ) { return result.subargs(2); } else { - error( result.arg(2).toString() ); + error( result.arg(2).tojstring() ); } } default: diff --git a/src/core/org/luaj/vm2/lib/DebugLib.java b/src/core/org/luaj/vm2/lib/DebugLib.java index ae1bd5ac..b9be0376 100644 --- a/src/core/org/luaj/vm2/lib/DebugLib.java +++ b/src/core/org/luaj/vm2/lib/DebugLib.java @@ -186,24 +186,24 @@ public class DebugLib extends OneArgFunction { return getobjname(this, stackpos); } public Object sourceline() { - if ( closure == null ) return func.toString(); - String s = closure.p.source.toString(); + if ( closure == null ) return func.tojstring(); + String s = closure.p.source.tojstring(); int line = currentline(); return (s.startsWith("@")||s.startsWith("=")? s.substring(1): s) + ":" + line; } public String tracename() { // if ( func != null ) - // return func.toString(); + // return func.tojstring(); LuaString[] kind = getfunckind(); if ( kind == null ) return "function ?"; - return "function "+kind[0].toString(); + return "function "+kind[0].tojstring(); } public LuaString getlocalname(int index) { if ( closure == null ) return null; return closure.p.getlocalname(index, pc); } - public String toString() { + public String tojstring() { return sourceline()+": in "+tracename(); } } @@ -277,7 +277,7 @@ public class DebugLib extends OneArgFunction { } return new DebugInfo(func); } - public String toString() { + public String tojstring() { return DebugLib.traceback(thread, 0); } } @@ -437,7 +437,7 @@ public class DebugLib extends OneArgFunction { info.set(LINEDEFINED, valueOf(p.linedefined)); info.set(LASTLINEDEFINED, valueOf(p.lastlinedefined)); } else { - String shortName = di.func.toString(); + String shortName = di.func.tojstring(); LuaString name = LuaString.valueOf("[Java] "+shortName); info.set(WHAT, JAVA); info.set(SOURCE, name); @@ -482,7 +482,7 @@ public class DebugLib extends OneArgFunction { } public static String sourceshort(Prototype p) { - String name = p.source.toString(); + String name = p.source.tojstring(); if ( name.startsWith("@") || name.startsWith("=") ) name = name.substring(1); else if ( name.startsWith("\033") ) @@ -618,7 +618,7 @@ public class DebugLib extends OneArgFunction { di = ds.getDebugInfo(i); if ( di != null ) { sb.append( "\t" ); - sb.append( di.toString() ); + sb.append( di.tojstring() ); if ( i file infile = args.arg1().isnil()? input(): args.arg1().isstring()? - ioopenfile(args.checkString(1),"r"): + ioopenfile(args.checkjstring(1),"r"): checkfile(args.arg1()); return infile; case IO_OUTPUT: // io.output(filename) -> file outfile = args.arg1().isnil()? output(): args.arg1().isstring()? - ioopenfile(args.checkString(1),"w"): + ioopenfile(args.checkjstring(1),"w"): checkfile(args.arg1()); return outfile; case IO_TYPE: // io.type(obj) -> "file" | "closed file" | nil @@ -225,11 +225,11 @@ public class IoLib extends OneArgFunction { return f.isclosed()? CLOSED_FILE: FILE; return NIL; case IO_POPEN: // io.popen(prog, [mode]) -> file - return openProgram(args.checkString(1),args.optString(2,"r")); + return openProgram(args.checkjstring(1),args.optString(2,"r")); case IO_OPEN: // io.open(filename, [mode]) -> file | nil,err - return rawopenfile(args.checkString(1), args.optString(2,"r")); + return rawopenfile(args.checkjstring(1), args.optString(2,"r")); case IO_LINES: // io.lines(filename) -> iterator - infile = args.arg1().isnil()? input(): ioopenfile(args.checkString(1),"r"); + infile = args.arg1().isnil()? input(): ioopenfile(args.checkjstring(1),"r"); checkopen(infile); return lines(infile); case IO_READ: // io.read(...) -> (...) @@ -246,7 +246,7 @@ public class IoLib extends OneArgFunction { return LuaValue.TRUE; case FILE_SETVBUF: // file:setvbuf(mode,[size]) -> void f = checkfile(args.arg1()); - f.setvbuf(args.checkString(2),args.optint(3, 1024)); + f.setvbuf(args.checkjstring(2),args.optint(3, 1024)); return LuaValue.TRUE; case FILE_LINES: // file:lines() -> iterator return lines(checkfile(args.arg1())); @@ -342,7 +342,7 @@ public class IoLib extends OneArgFunction { if ( args.isnumber(i+1) ) { v[i] = freadbytes(f,args.checkint(i+1)); } else { - String format = args.checkString(i+1); + String format = args.checkjstring(i+1); if ( "*n".equals(format) ) v[i] = valueOf( freadnumber(f) ); else if ( "*a".equals(format) ) diff --git a/src/core/org/luaj/vm2/lib/LibFunction.java b/src/core/org/luaj/vm2/lib/LibFunction.java index a55020fc..8a3866a4 100644 --- a/src/core/org/luaj/vm2/lib/LibFunction.java +++ b/src/core/org/luaj/vm2/lib/LibFunction.java @@ -110,7 +110,7 @@ abstract public class LibFunction extends LuaFunction { this.delegate = delegate; } - public String toString() { + public String tojstring() { return name; } @@ -147,7 +147,7 @@ abstract public class LibFunction extends LuaFunction { this.delegate = delegate; } - public String toString() { + public String tojstring() { return name; } @@ -184,7 +184,7 @@ abstract public class LibFunction extends LuaFunction { this.delegate = delegate; } - public String toString() { + public String tojstring() { return name; } @@ -221,7 +221,7 @@ abstract public class LibFunction extends LuaFunction { this.delegate = delegate; } - public String toString() { + public String tojstring() { return name; } @@ -258,7 +258,7 @@ abstract public class LibFunction extends LuaFunction { this.delegate = delegate; } - public String toString() { + public String tojstring() { return name; } diff --git a/src/core/org/luaj/vm2/lib/OsLib.java b/src/core/org/luaj/vm2/lib/OsLib.java index b492fae9..0c0084cb 100644 --- a/src/core/org/luaj/vm2/lib/OsLib.java +++ b/src/core/org/luaj/vm2/lib/OsLib.java @@ -110,14 +110,14 @@ public class OsLib extends OneArgFunction { exit(args.optint(1, 0)); return NONE; case GETENV: { - final String val = getenv(args.checkString(1)); + final String val = getenv(args.checkjstring(1)); return val!=null? valueOf(val): NIL; } case REMOVE: - remove(args.checkString(1)); + remove(args.checkjstring(1)); return LuaValue.TRUE; case RENAME: - rename(args.checkString(1), args.checkString(2)); + rename(args.checkjstring(1), args.checkjstring(2)); return LuaValue.TRUE; case SETLOCALE: { String s = setlocale(args.optString(1,null), args.optString(2, "all")); diff --git a/src/core/org/luaj/vm2/lib/PackageLib.java b/src/core/org/luaj/vm2/lib/PackageLib.java index 5cfe9d11..463c1d20 100644 --- a/src/core/org/luaj/vm2/lib/PackageLib.java +++ b/src/core/org/luaj/vm2/lib/PackageLib.java @@ -127,7 +127,7 @@ public class PackageLib extends OneArgFunction { PACKAGE.set( _PATH, valueOf(newLuaPath) ); } - public String toString() { + public String tojstring() { return "package"; } @@ -277,7 +277,7 @@ public class PackageLib extends OneArgFunction { if ( chunk.isfunction() ) break; if ( chunk.isstring() ) - sb.append( chunk.toString() ); + sb.append( chunk.tojstring() ); } // load the module using the loader @@ -304,7 +304,7 @@ public class PackageLib extends OneArgFunction { } private LuaValue loader_Lua( Varargs args ) { - String name = args.checkString(1); + String name = args.checkjstring(1); InputStream is = null; @@ -312,7 +312,7 @@ public class PackageLib extends OneArgFunction { LuaValue pp = PACKAGE.get(_PATH); if ( ! pp.isstring() ) return valueOf("package.path is not a string"); - String path = pp.toString(); + String path = pp.tojstring(); // check the path elements int e = -1; @@ -355,7 +355,7 @@ public class PackageLib extends OneArgFunction { } private LuaValue loader_Java( Varargs args ) { - String name = args.checkString(1); + String name = args.checkjstring(1); String classname = toClassname( name ); Class c = null; LuaValue v = null; diff --git a/src/core/org/luaj/vm2/lib/StringLib.java b/src/core/org/luaj/vm2/lib/StringLib.java index 29edeaf5..8be76f5e 100644 --- a/src/core/org/luaj/vm2/lib/StringLib.java +++ b/src/core/org/luaj/vm2/lib/StringLib.java @@ -591,7 +591,7 @@ public class StringLib extends OneArgFunction { * The definition of what an uppercase letter is depends on the current locale. */ static LuaValue lower( LuaValue arg ) { - return valueOf( arg.checkString().toLowerCase() ); + return valueOf( arg.checkjstring().toLowerCase() ); } /** @@ -675,7 +675,7 @@ public class StringLib extends OneArgFunction { * The definition of what a lowercase letter is depends on the current locale. */ static LuaValue upper( LuaValue arg ) { - return valueOf(arg.checkString().toUpperCase()); + return valueOf(arg.checkjstring().toUpperCase()); } /** diff --git a/src/jme/org/luaj/vm2/lib/jme/JmeIoLib.java b/src/jme/org/luaj/vm2/lib/jme/JmeIoLib.java index d38e5aec..813b1f15 100644 --- a/src/jme/org/luaj/vm2/lib/jme/JmeIoLib.java +++ b/src/jme/org/luaj/vm2/lib/jme/JmeIoLib.java @@ -101,7 +101,7 @@ public class JmeIoLib extends IoLib { private FileImpl( OutputStream o ) { this( null, null, o ); } - public String toString() { + public String tojstring() { return "file ("+this.hashCode()+")"; } public boolean isstdfile() { diff --git a/src/jse/org/luaj/vm2/lib/jse/CoerceLuaToJava.java b/src/jse/org/luaj/vm2/lib/jse/CoerceLuaToJava.java index 5955638d..dcc2f8ed 100644 --- a/src/jse/org/luaj/vm2/lib/jse/CoerceLuaToJava.java +++ b/src/jse/org/luaj/vm2/lib/jse/CoerceLuaToJava.java @@ -156,7 +156,7 @@ public class CoerceLuaToJava { }; Coercion stringCoercion = new Coercion() { public Object coerce(LuaValue value) { - return value.toString(); + return value.tojstring(); } public int score(LuaValue value) { switch ( value.type() ) { @@ -173,7 +173,7 @@ public class CoerceLuaToJava { case LuaValue.TUSERDATA: return value.optuserdata(Object.class, null); case LuaValue.TSTRING: - return value.toString(); + return value.tojstring(); case LuaValue.TNUMBER: return (value.isinttype()? new Integer(value.toint()): diff --git a/src/jse/org/luaj/vm2/lib/jse/JseIoLib.java b/src/jse/org/luaj/vm2/lib/jse/JseIoLib.java index 2485a170..7244dcef 100644 --- a/src/jse/org/luaj/vm2/lib/jse/JseIoLib.java +++ b/src/jse/org/luaj/vm2/lib/jse/JseIoLib.java @@ -99,7 +99,7 @@ public class JseIoLib extends IoLib { private FileImpl( OutputStream o ) { this( null, null, o ); } - public String toString() { + public String tojstring() { return "file ("+this.hashCode()+")"; } public boolean isstdfile() { diff --git a/src/jse/org/luaj/vm2/lib/jse/LuajavaLib.java b/src/jse/org/luaj/vm2/lib/jse/LuajavaLib.java index abd65eec..58413e14 100644 --- a/src/jse/org/luaj/vm2/lib/jse/LuajavaLib.java +++ b/src/jse/org/luaj/vm2/lib/jse/LuajavaLib.java @@ -88,14 +88,14 @@ public class LuajavaLib extends OneArgFunction { try { switch ( opcode ) { case BINDCLASS: { - final Class clazz = Class.forName(args.checkString(1)); + final Class clazz = Class.forName(args.checkjstring(1)); return toUserdata( clazz, clazz ); } case NEWINSTANCE: case NEW: { // get constructor final LuaValue c = args.checkvalue(1); - final Class clazz = (opcode==NEWINSTANCE? Class.forName(c.toString()): (Class) c.checkuserdata(Class.class)); + final Class clazz = (opcode==NEWINSTANCE? Class.forName(c.tojstring()): (Class) c.checkuserdata(Class.class)); final ParamsList params = new ParamsList( args ); final Constructor con = resolveConstructor( clazz, params ); @@ -116,7 +116,7 @@ public class LuajavaLib extends OneArgFunction { // get the interfaces final Class[] ifaces = new Class[niface]; for ( int i=0; i= 0 && ik < 10 ); final int mask = 1 << ik; assertTrue( "Key \""+ik+"\" found more than once", ( stringKeys & mask ) == 0 ); @@ -267,8 +267,8 @@ public class TableArrayTest extends TestCase { assertEquals(v.size(),t.length()); for ( int j=0; j= 0 && ik < 10 ); final int mask = 1 << ik; assertTrue( "Key \""+ik+"\" found more than once", ( stringKeys & mask ) == 0 ); @@ -252,8 +252,8 @@ public class TableTest extends TestCase { assertEquals(v.size(),t.length()); for ( int j=0; j