diff src/luan/LuaJavaFunction.java @ 12:9cea1aea5eef

CmdLine can run files git-svn-id: https://luan-java.googlecode.com/svn/trunk@13 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 23 Nov 2012 10:37:40 +0000
parents 24fd6381caca
children c93d8c781853
line wrap: on
line diff
--- a/src/luan/LuaJavaFunction.java	Thu Nov 22 10:51:56 2012 +0000
+++ b/src/luan/LuaJavaFunction.java	Fri Nov 23 10:37:40 2012 +0000
@@ -25,7 +25,7 @@
 		}
 	}
 
-	@Override public Object[] call(Object... args) {
+	@Override public Object[] call(LuaState lua,Object... args) {
 		args = fixArgs(args);
 		Object rtn;
 		try {
@@ -76,15 +76,19 @@
 		public Object[] convert(Object obj);
 	}
 
-	private static final Object[] EMPTY = new Object[0];
-
 	private static final RtnConverter RTN_EMPTY = new RtnConverter() {
 		public Object[] convert(Object obj) {
-			return EMPTY;
+			return EMPTY_RTN;
 		}
 	};
 
-	private static final RtnConverter RTN_SAME = new RtnConverter() {
+	private static final RtnConverter RTN_ARRAY = new RtnConverter() {
+		public Object[] convert(Object obj) {
+			return (Object[])obj;
+		}
+	};
+
+	private static final RtnConverter RTN_ONE = new RtnConverter() {
 		public Object[] convert(Object obj) {
 			return new Object[]{obj};
 		}
@@ -112,7 +116,9 @@
 			|| rtnType == Double.TYPE
 		)
 			return RTN_NUMBER;
-		return RTN_SAME;
+		if( rtnType.isArray() )
+			return RTN_ARRAY;
+		return RTN_ONE;
 	}