Mercurial Hosting > luan
comparison src/luan/LuanJavaFunction.java @ 67:8ca58ab6919b
fix LuanJavaFunction.checkArgs() for nulls
git-svn-id: https://luan-java.googlecode.com/svn/trunk@68 21e917c8-12df-6dd8-5cb6-c86387c605b9
| author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
|---|---|
| date | Tue, 22 Jan 2013 21:56:05 +0000 |
| parents | 177cfdc2bdb3 |
| children | 877288464542 |
comparison
equal
deleted
inserted
replaced
| 66:f7e17cfb35f9 | 67:8ca58ab6919b |
|---|---|
| 85 Class<?>[] t = new Class<?>[a.length-1]; | 85 Class<?>[] t = new Class<?>[a.length-1]; |
| 86 System.arraycopy(a,1,t,0,t.length); | 86 System.arraycopy(a,1,t,0,t.length); |
| 87 a = t; | 87 a = t; |
| 88 } | 88 } |
| 89 for( int i=0; i<a.length; i++ ) { | 89 for( int i=0; i<a.length; i++ ) { |
| 90 if( !a[i].isInstance(args[i]) ) { | 90 Class<?> paramType = a[i]; |
| 91 String got = args[i].getClass().getSimpleName(); | 91 Object arg = args[i]; |
| 92 String expected = a[i].getSimpleName(); | 92 if( !paramType.isInstance(arg) ) { |
| 93 throw new LuanException(luan,LuanElement.JAVA,"bad argument #"+(i+1)+" ("+expected+" expected, got "+got+")"); | 93 String expected = paramType.getSimpleName(); |
| 94 if( arg==null ) { | |
| 95 if( paramType.isPrimitive() ) | |
| 96 throw new LuanException(luan,LuanElement.JAVA,"bad argument #"+(i+1)+" ("+expected+" expected, got nil)"); | |
| 97 } else { | |
| 98 String got = arg.getClass().getSimpleName(); | |
| 99 throw new LuanException(luan,LuanElement.JAVA,"bad argument #"+(i+1)+" ("+expected+" expected, got "+got+")"); | |
| 100 } | |
| 94 } | 101 } |
| 95 } | 102 } |
| 96 } | 103 } |
| 97 | 104 |
| 98 private Object[] fixArgs(LuanState luan,Object[] args) { | 105 private Object[] fixArgs(LuanState luan,Object[] args) { |
