diff core/src/luan/LuanBit.java @ 575:7c3ad6db8ac3

make LuanState.JAVA private
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 13 Jul 2015 18:34:31 -0600
parents 6cc2f047019b
children
line wrap: on
line diff
--- a/core/src/luan/LuanBit.java	Mon Jul 13 12:31:53 2015 -0600
+++ b/core/src/luan/LuanBit.java	Mon Jul 13 18:34:31 2015 -0600
@@ -41,17 +41,53 @@
 		}
 	}
 
-	public void push(String fnName) {
+	private void push(String fnName) {
 		if( el == null )  throw new RuntimeException();
 		List<StackTraceElement> stackTrace = luan.stackTrace;
 		stackTrace.add( new StackTraceElement(el,fnName) );
 	}
 
-	public void pop() {
+	private void pop() {
 		List<StackTraceElement> stackTrace = luan.stackTrace;
 		stackTrace.remove(stackTrace.size()-1);
 	}
 
+	public String toString(Object obj) throws LuanException {
+		push(null);
+		try {
+			return luan.toString(obj);
+		} finally {
+			pop();
+		}
+	}
+
+	public Object index(Object obj,Object key) throws LuanException {
+		push(null);
+		try {
+			return luan.index(obj,key);
+		} finally {
+			pop();
+		}
+	}
+
+	public int length(LuanTable t) throws LuanException {
+		push(null);
+		try {
+			return t.length(luan);
+		} finally {
+			pop();
+		}
+	}
+
+	public void put(LuanTable t,Object key,Object value) throws LuanException {
+		push(null);
+		try {
+			t.put(luan,key,value);
+		} finally {
+			pop();
+		}
+	}
+
 	public String checkString(Object obj) throws LuanException {
 		if( obj instanceof String )
 			return (String)obj;
@@ -133,18 +169,4 @@
 		throw exception("attempt to perform arithmetic on a "+type+" value");
 	}
 
-	public String toString(Object obj) throws LuanException {
-		if( obj instanceof LuanTable ) {
-			LuanTable tbl = (LuanTable)obj;
-			return tbl.toString(this);
-		}
-		if( obj == null )
-			return "nil";
-		if( obj instanceof Number )
-			return Luan.toString((Number)obj);
-		if( obj instanceof byte[] )
-			return "binary: " + Integer.toHexString(obj.hashCode());
-		return obj.toString();
-	}
-
 }