diff src/luan/LuanJavaFunction.java @ 1259:e8020216dee7

add Luan.to_luan and fix multipart/form-data
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 23 Sep 2018 17:58:40 -0600
parents aa8517d7c065
children 9fa8b8389578
line wrap: on
line diff
--- a/src/luan/LuanJavaFunction.java	Thu Sep 20 22:11:11 2018 -0600
+++ b/src/luan/LuanJavaFunction.java	Sun Sep 23 17:58:40 2018 -0600
@@ -225,16 +225,7 @@
 		}
 		return RTN_SAME;
 	}
-/*
-	private static boolean isNumber(Class rtnType) {
-		return rtnType == Short.TYPE
-			|| rtnType == Integer.TYPE
-			|| rtnType == Long.TYPE
-			|| rtnType == Float.TYPE
-			|| rtnType == Double.TYPE
-		;
-	}
-*/
+
 	private interface ArgConverter {
 		public Object convert(LuanState luan,Object obj) throws LuanException;
 	}
@@ -348,32 +339,8 @@
 
 	private static final ArgConverter ARG_TABLE = new ArgConverter() {
 		public Object convert(LuanState luan,Object obj) {
-			if( obj == null )
-				return null;
-			if( obj instanceof List ) {
-				return new LuanTable((List)obj);
-			}
-			if( obj instanceof Map ) {
-				return new LuanTable((Map)obj);
-			}
-			if( obj instanceof Set ) {
-				return new LuanTable((Set)obj);
-			}
-			Class cls = obj.getClass();
-			if( cls.isArray() ) {
-				if( cls.getComponentType().isPrimitive() ) {
-					int len = Array.getLength(obj);
-					List list = new ArrayList();
-					for( int i=0; i<len; i++ ) {
-						list.add(Array.get(obj,i));
-					}
-					return new LuanTable(list);
-				} else {
-					Object[] a = (Object[])obj;
-					return new LuanTable(Arrays.asList(a));
-				}
-			}
-			return obj;
+			LuanTable tbl = Luan.toTable(obj);
+			return tbl!=null ? tbl : obj;
 		}
 		@Override public String toString() {
 			return "ARG_TABLE";