diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsc/jni/FabricJSCBinding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsc/jni/FabricJSCBinding.cpp index 83023f488aa..27aac53bbb8 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsc/jni/FabricJSCBinding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsc/jni/FabricJSCBinding.cpp @@ -33,10 +33,15 @@ typedef struct FabricJSCUIManager { : wrapperObjectClassRef(classRef) , useCustomJSC(customJSC) { fabricUiManager = make_global(module); + JSC_JSClassRetain(useCustomJSC, wrapperObjectClassRef); } global_ref fabricUiManager; JSClassRef wrapperObjectClassRef; bool useCustomJSC; + + ~FabricJSCUIManager() { + JSC_JSClassRelease(useCustomJSC, wrapperObjectClassRef); + } } FabricJSCUIManager; jobject makePlainGlobalRef(jobject object) { @@ -283,6 +288,8 @@ void FabricJSCBinding::installFabric(jlong jsContextNativePointer, addFabricMethod(context, fabricModule, classRef, module, "appendChildToSet", appendChildToSet); addFabricMethod(context, fabricModule, classRef, module, "completeRoot", completeRoot); + JSC_JSClassRelease(useCustomJSC, classRef); + JSObjectRef globalObject = JSC_JSContextGetGlobalObject(context); JSStringRef globalName = JSC_JSStringCreateWithUTF8CString(context, "nativeFabricUIManager"); JSC_JSObjectSetProperty(context, globalObject, globalName, module, kJSPropertyAttributeNone, NULL);