@@ -68,25 +68,17 @@ JavaObject::~JavaObject() {
6868 v8::HandleScope scope;
6969 JavaObject* self = node::ObjectWrap::Unwrap<JavaObject>(args.This ());
7070 JNIEnv *env = self->m_java ->getJavaEnv ();
71- bool callbackProvided;
7271
7372 v8::String::AsciiValue methodName (args.Data ());
7473 std::string methodNameStr = *methodName;
7574
75+ int argsStart = 0 ;
7676 int argsEnd = args.Length ();
7777
78- // argument - callback
79- v8::Handle<v8::Value> callback;
80- if (args[args.Length ()-1 ]->IsFunction ()) {
81- callback = args[argsEnd-1 ];
82- argsEnd--;
83- callbackProvided = true ;
84- } else {
85- callback = v8::Null ();
86- callbackProvided = false ;
87- }
78+ // arguments
79+ ARGS_BACK_CALLBACK ();
8880
89- jobjectArray methodArgs = v8ToJava (env, args, 0 , argsEnd);
81+ jobjectArray methodArgs = v8ToJava (env, args, argsStart , argsEnd);
9082
9183 jobject method = javaFindMethod (env, self->m_class , methodNameStr, methodArgs);
9284 if (method == NULL ) {
@@ -123,7 +115,10 @@ JavaObject::~JavaObject() {
123115 v8::String::AsciiValue methodName (args.Data ());
124116 std::string methodNameStr = *methodName;
125117
126- jobjectArray methodArgs = v8ToJava (env, args, 0 , args.Length ());
118+ int argsStart = 0 ;
119+ int argsEnd = args.Length ();
120+
121+ jobjectArray methodArgs = v8ToJava (env, args, argsStart, argsEnd);
127122
128123 jobject method = javaFindMethod (env, self->m_class , methodNameStr, methodArgs);
129124 if (method == NULL ) {
0 commit comments