diff --git a/src/lime/system/JNI.hx b/src/lime/system/JNI.hx index 7fb42ac03..5a32c60f7 100644 --- a/src/lime/system/JNI.hx +++ b/src/lime/system/JNI.hx @@ -48,52 +48,12 @@ class JNI public static function callMember(method:Dynamic, jobject:Dynamic, a:Array):Dynamic { - switch (a.length) - { - case 0: - return method(jobject); - case 1: - return method(jobject, a[0]); - case 2: - return method(jobject, a[0], a[1]); - case 3: - return method(jobject, a[0], a[1], a[2]); - case 4: - return method(jobject, a[0], a[1], a[2], a[3]); - case 5: - return method(jobject, a[0], a[1], a[2], a[3], a[4]); - case 6: - return method(jobject, a[0], a[1], a[2], a[3], a[4], a[5]); - case 7: - return method(jobject, a[0], a[1], a[2], a[3], a[4], a[5], a[6]); - default: - return null; - } + return Reflect.callMethod(null, method, [jobject].concat(a)); } public static function callStatic(method:Dynamic, a:Array):Dynamic { - switch (a.length) - { - case 0: - return method(); - case 1: - return method(a[0]); - case 2: - return method(a[0], a[1]); - case 3: - return method(a[0], a[1], a[2]); - case 4: - return method(a[0], a[1], a[2], a[3]); - case 5: - return method(a[0], a[1], a[2], a[3], a[4]); - case 6: - return method(a[0], a[1], a[2], a[3], a[4], a[5]); - case 7: - return method(a[0], a[1], a[2], a[3], a[4], a[5], a[6]); - default: - return null; - } + return Reflect.callMethod(null, method, a); } public static function createMemberField(className:String, memberName:String, signature:String):JNIMemberField