Mercurial Hosting > luan
comparison src/luan/LuanJavaFunction.java @ 783:4083f5a67c63
minor
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Tue, 30 Aug 2016 12:00:38 -0600 |
| parents | 1a68fc55a80c |
| children | 626815a4b19b |
comparison
equal
deleted
inserted
replaced
| 782:655280eab1e2 | 783:4083f5a67c63 |
|---|---|
| 40 this.varArgCls = paramTypes[paramTypes.length-1].getComponentType(); | 40 this.varArgCls = paramTypes[paramTypes.length-1].getComponentType(); |
| 41 } else { | 41 } else { |
| 42 this.varArgCls = null; | 42 this.varArgCls = null; |
| 43 } | 43 } |
| 44 } | 44 } |
| 45 /* | 45 |
| 46 private LuanJavaFunction(LuanJavaFunction f) { | |
| 47 this.method = f.method; | |
| 48 this.rtnConverter = f.rtnConverter; | |
| 49 this.takesLuaState = f.takesLuaState; | |
| 50 this.argConverters = f.argConverters; | |
| 51 this.varArgCls = f.varArgCls; | |
| 52 } | |
| 53 | |
| 54 @Override public LuanJavaFunction shallowClone() { | |
| 55 return obj==null ? this : new LuanJavaFunction(this); | |
| 56 } | |
| 57 | |
| 58 @Override public void deepenClone(LuanJavaFunction clone,DeepCloner cloner) { | |
| 59 clone.obj = cloner.get(obj); | |
| 60 } | |
| 61 */ | |
| 62 @Override public String toString() { | 46 @Override public String toString() { |
| 63 return "java-function: " + method; | 47 return "java-function: " + method; |
| 64 } | 48 } |
| 65 | 49 |
| 66 public Class[] getParameterTypes() { | 50 public int getParameterCount() { |
| 67 return method.getParameterTypes(); | 51 return argConverters.length; |
| 68 } | 52 } |
| 69 | 53 |
| 70 @Override public Object call(LuanState luan,Object[] args) throws LuanException { | 54 @Override public Object call(LuanState luan,Object[] args) throws LuanException { |
| 71 try { | 55 try { |
| 72 args = fixArgs(luan,args); | 56 args = fixArgs(luan,args); |
| 113 primitiveMap.put(Double.TYPE,Double.class); | 97 primitiveMap.put(Double.TYPE,Double.class); |
| 114 primitiveMap.put(Void.TYPE,Void.class); | 98 primitiveMap.put(Void.TYPE,Void.class); |
| 115 } | 99 } |
| 116 | 100 |
| 117 private void checkArgs(Object[] args) throws LuanException { | 101 private void checkArgs(Object[] args) throws LuanException { |
| 118 Class[] a = getParameterTypes(); | 102 Class[] a = method.getParameterTypes(); |
| 119 int start = takesLuaState ? 1 : 0; | 103 int start = takesLuaState ? 1 : 0; |
| 120 for( int i=start; i<a.length; i++ ) { | 104 for( int i=start; i<a.length; i++ ) { |
| 121 Class paramType = a[i]; | 105 Class paramType = a[i]; |
| 122 Class type = paramType; | 106 Class type = paramType; |
| 123 if( type.isPrimitive() ) | 107 if( type.isPrimitive() ) |
