diff --git a/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp b/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp index 4865942f7..885ddc1e1 100644 --- a/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +++ b/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp @@ -520,14 +520,14 @@ namespace runnable { static jclass gNativeRunnableClass; static jmethodID gNativeRunnableCtor; -static jobject createNativeRunnable(JNIEnv* env, decltype(NativeRunnable::callable)&& callable) { - jobject jRunnable = env->NewObject(gNativeRunnableClass, gNativeRunnableCtor); +static LocalReference createNativeRunnable(JNIEnv* env, decltype(NativeRunnable::callable)&& callable) { + LocalReference jRunnable{env->NewObject(gNativeRunnableClass, gNativeRunnableCtor)}; if (env->ExceptionCheck()) { return nullptr; } auto nativeRunnable = createNew(); nativeRunnable->callable = std::move(callable); - setCountableForJava(env, jRunnable, std::move(nativeRunnable)); + setCountableForJava(env, jRunnable.get(), std::move(nativeRunnable)); return jRunnable; } @@ -602,8 +602,8 @@ static void dispatchCallbacksToJava(const RefPtr& weakCallback, } }, std::move(calls)); - jobject jNativeRunnable = runnable::createNativeRunnable(env, std::move(runnableFunction)); - queue::enqueueNativeRunnableOnQueue(env, callbackQueueThread, jNativeRunnable); + auto jNativeRunnable = runnable::createNativeRunnable(env, std::move(runnableFunction)); + queue::enqueueNativeRunnableOnQueue(env, callbackQueueThread, jNativeRunnable.get()); } static void create(JNIEnv* env, jobject obj, jobject executor, jobject callback,