diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 20e5ab0eee7..bf994ef3eee 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -3592,10 +3592,10 @@ public abstract interface class com/facebook/react/touch/ReactInterceptingViewGr public abstract fun setOnInterceptTouchEventListener (Lcom/facebook/react/touch/OnInterceptTouchEventListener;)V } -public final class com/facebook/react/turbomodule/core/CallInvokerHolderImpl : com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder { +public final class com/facebook/react/turbomodule/core/CallInvokerHolderImpl : com/facebook/jni/HybridClassBase, com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder { } -public final class com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl : com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder { +public final class com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl : com/facebook/jni/HybridClassBase, com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder { } public final class com/facebook/react/turbomodule/core/interfaces/BindingsInstallerHolder { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/NativeModuleSoLoader.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/NativeModuleSoLoader.kt deleted file mode 100644 index a79059ce176..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/NativeModuleSoLoader.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.internal.turbomodule.core - -import com.facebook.soloader.SoLoader - -internal object NativeModuleSoLoader { - private var isSoLibraryLoaded = false - - @Synchronized - @JvmStatic - public fun maybeLoadSoLibrary() { - if (!isSoLibraryLoaded) { - SoLoader.loadLibrary("turbomodulejsijni") - isSoLibraryLoaded = true - } - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java index 0ea112baee9..e8e594a3726 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java @@ -23,6 +23,7 @@ import com.facebook.react.turbomodule.core.NativeMethodCallInvokerHolderImpl; import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder; import com.facebook.react.turbomodule.core.interfaces.TurboModule; +import com.facebook.soloader.SoLoader; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -44,7 +45,7 @@ public class TurboModuleManager implements TurboModuleRegistry { private final TurboModuleManagerDelegate mDelegate; static { - NativeModuleSoLoader.maybeLoadSoLibrary(); + SoLoader.loadLibrary("turbomodulejsijni"); } // Prevents the creation of new TurboModules once cleanup as been initiated. diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java index b6ebb6fa834..2fd89a4d85b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java @@ -13,6 +13,7 @@ import com.facebook.jni.HybridData; import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.NativeModule; import com.facebook.react.turbomodule.core.interfaces.TurboModule; +import com.facebook.soloader.SoLoader; import java.util.Collections; import java.util.List; @@ -23,7 +24,7 @@ public abstract class TurboModuleManagerDelegate { private final HybridData mHybridData; static { - NativeModuleSoLoader.maybeLoadSoLibrary(); + SoLoader.loadLibrary("turbomodulejsijni"); } protected abstract HybridData initHybrid(); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt index 39c547f17c0..b1b63e8ca6f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModulePerfLogger.kt @@ -9,13 +9,14 @@ package com.facebook.react.internal.turbomodule.core import com.facebook.proguard.annotations.DoNotStrip import com.facebook.react.reactperflogger.NativeModulePerfLogger +import com.facebook.soloader.SoLoader @DoNotStrip internal object TurboModulePerfLogger { private var nativeModulePerfLogger: NativeModulePerfLogger? = null init { - NativeModuleSoLoader.maybeLoadSoLibrary() + SoLoader.loadLibrary("turbomodulejsijni") } @JvmStatic diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.kt index c354f468911..26788ca2446 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/CallInvokerHolderImpl.kt @@ -7,10 +7,8 @@ package com.facebook.react.turbomodule.core -import com.facebook.jni.HybridData -import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.jni.HybridClassBase import com.facebook.react.common.annotations.FrameworkAPI -import com.facebook.react.internal.turbomodule.core.NativeModuleSoLoader import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder /** @@ -19,11 +17,4 @@ import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder * pass it from CatalystInstance, through Java, to TurboModuleManager::initHybrid. */ @FrameworkAPI -public class CallInvokerHolderImpl -private constructor(@field:DoNotStrip private val mHybridData: HybridData) : CallInvokerHolder { - private companion object { - init { - NativeModuleSoLoader.maybeLoadSoLibrary() - } - } -} +public class CallInvokerHolderImpl private constructor() : HybridClassBase(), CallInvokerHolder {} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.kt index d777783a041..c8c29e2fef9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl.kt @@ -7,10 +7,8 @@ package com.facebook.react.turbomodule.core -import com.facebook.jni.HybridData -import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.jni.HybridClassBase import com.facebook.react.common.annotations.FrameworkAPI -import com.facebook.react.internal.turbomodule.core.NativeModuleSoLoader import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder /** @@ -20,12 +18,5 @@ import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHol * TurboModuleManager::initHybrid. */ @FrameworkAPI -public class NativeMethodCallInvokerHolderImpl -private constructor(@field:DoNotStrip private val mHybridData: HybridData) : - NativeMethodCallInvokerHolder { - private companion object { - init { - NativeModuleSoLoader.maybeLoadSoLibrary() - } - } -} +public class NativeMethodCallInvokerHolderImpl private constructor() : + HybridClassBase(), NativeMethodCallInvokerHolder {} diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.cpp index 9b44821755b..aac1578dcd4 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.cpp @@ -10,12 +10,6 @@ namespace facebook::react { CallInvokerHolder::CallInvokerHolder(std::shared_ptr callInvoker) - : _callInvoker(callInvoker) {} - -std::shared_ptr CallInvokerHolder::getCallInvoker() { - return _callInvoker; -} - -void CallInvokerHolder::registerNatives() {} + : callInvoker_(std::move(callInvoker)) {} } // namespace facebook::react diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h index 3e4b4f8f2a2..6561f9cc5dd 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/CallInvokerHolder.h @@ -18,13 +18,14 @@ class CallInvokerHolder : public jni::HybridClass { static auto constexpr kJavaDescriptor = "Lcom/facebook/react/turbomodule/core/CallInvokerHolderImpl;"; - static void registerNatives(); - std::shared_ptr getCallInvoker(); + std::shared_ptr getCallInvoker() { + return callInvoker_; + } private: friend HybridBase; CallInvokerHolder(std::shared_ptr callInvoker); - std::shared_ptr _callInvoker; + std::shared_ptr callInvoker_; }; } // namespace facebook::react diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.cpp index 62d9b0de182..7593e931c8c 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.cpp @@ -11,13 +11,6 @@ namespace facebook::react { NativeMethodCallInvokerHolder::NativeMethodCallInvokerHolder( std::shared_ptr nativeMethodCallInvoker) - : _nativeMethodCallInvoker(nativeMethodCallInvoker) {} - -std::shared_ptr -NativeMethodCallInvokerHolder::getNativeMethodCallInvoker() { - return _nativeMethodCallInvoker; -} - -void NativeMethodCallInvokerHolder::registerNatives() {} + : nativeMethodCallInvoker_(std::move(nativeMethodCallInvoker)) {} } // namespace facebook::react diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h index ef8fa3b5a42..cc5a2e3637f 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/NativeMethodCallInvokerHolder.h @@ -19,14 +19,15 @@ class NativeMethodCallInvokerHolder static auto constexpr kJavaDescriptor = "Lcom/facebook/react/turbomodule/core/NativeMethodCallInvokerHolderImpl;"; - static void registerNatives(); - std::shared_ptr getNativeMethodCallInvoker(); + std::shared_ptr getNativeMethodCallInvoker() { + return nativeMethodCallInvoker_; + } private: friend HybridBase; NativeMethodCallInvokerHolder( std::shared_ptr nativeMethodCallInvoker); - std::shared_ptr _nativeMethodCallInvoker; + std::shared_ptr nativeMethodCallInvoker_; }; } // namespace facebook::react