Skip to content

Commit 037cb05

Browse files
committed
more refactoring argument parsing
1 parent 63e0924 commit 037cb05

1 file changed

Lines changed: 8 additions & 13 deletions

File tree

src/javaObject.cpp

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)