@@ -202,10 +202,10 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
202202 booleanInitMethodID = env->GetMethodID (booleanCls, " <init>" , " (Z)V" );
203203
204204 callJavaVoidCallbackMethodID = env->GetStaticMethodID (quickJSCls, " callJavaVoidCallback" ,
205- " (JLcom /quickjs/android/JSValue;Lcom/quickjs/android/JSValue;Lcom/quickjs/android/JSArray;)V" );
205+ " (Lcom /quickjs/android/JSValue;Lcom/quickjs/android/JSValue;Lcom/quickjs/android/JSArray;)V" );
206206
207207 callJavaCallbackMethodID = env->GetStaticMethodID (quickJSCls, " callJavaCallback" ,
208- " (JLcom /quickjs/android/JSValue;Lcom/quickjs/android/JSValue;Lcom/quickjs/android/JSArray;)Ljava/lang/Object;" );
208+ " (Lcom /quickjs/android/JSValue;Lcom/quickjs/android/JSValue;Lcom/quickjs/android/JSArray;)Ljava/lang/Object;" );
209209
210210 createJSValueMethodID = env->GetStaticMethodID (quickJSCls, " createJSValue" ,
211211 " (JIJIDJ)Lcom/quickjs/android/JSValue;" );
@@ -447,16 +447,16 @@ callJavaCallback(JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *
447447 JS_SetPropertyUint32 (ctx, args, i, it);
448448 }
449449 }
450- jlong contextPtr = reinterpret_cast <long >(ctx);
451450 jobject objectHandle = TO_JAVA_OBJECT (env, ctx, this_val);
452451 jobject functionHandle = TO_JAVA_OBJECT (env, ctx, func);
453452 jobject argsHandle = TO_JAVA_OBJECT (env, ctx, args);
454453 jobject result = env->CallStaticObjectMethod (quickJSCls, callJavaCallbackMethodID,
455- contextPtr,
456454 objectHandle,
457455 functionHandle,
458456 argsHandle);
459- if (env->IsInstanceOf (result, integerCls)) {
457+ if (result == nullptr ) {
458+ return JS_NULL;
459+ } else if (env->IsInstanceOf (result, integerCls)) {
460460 return JS_NewInt32 (ctx, env->CallIntMethod (result, intValueMethodID));
461461 } else if (env->IsInstanceOf (result, doubleCls)) {
462462 return JS_NewFloat64 (ctx, env->CallDoubleMethod (result, doubleValueMethodID));
@@ -483,12 +483,10 @@ callJavaVoidCallback(JSContext *ctx, JSValueConst this_val, int argc, JSValueCon
483483 JS_SetPropertyUint32 (ctx, args, i, it);
484484 }
485485 }
486- jlong contextPtr = reinterpret_cast <long >(ctx);
487486 jobject objectHandle = TO_JAVA_OBJECT (env, ctx, this_val);
488487 jobject functionHandle = TO_JAVA_OBJECT (env, ctx, func);
489488 jobject argsHandle = TO_JAVA_OBJECT (env, ctx, args);
490489 env->CallStaticVoidMethod (quickJSCls, callJavaVoidCallbackMethodID,
491- contextPtr,
492490 objectHandle,
493491 functionHandle,
494492 argsHandle);
0 commit comments