Skip to content

Commit cf13fe1

Browse files
RSNarafacebook-github-bot
authored andcommitted
Refactor: Clean up bindings installation
Summary: The runtime executor is only used to install jsi bindings. So, let's just pass it directly to the installJSIBindings function. Changelog: [Internal] Differential Revision: D89709216
1 parent d7bc47f commit cf13fe1

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,14 @@ public class TurboModuleManager(
5252
@DoNotStrip
5353
private val mHybridData: HybridData =
5454
initHybrid(
55-
runtimeExecutor,
5655
jsCallInvokerHolder as CallInvokerHolderImpl,
5756
nativeMethodCallInvokerHolder as NativeMethodCallInvokerHolderImpl,
5857
delegate,
5958
)
6059

6160
init {
6261

63-
installJSIBindings()
62+
installJSIBindings(runtimeExecutor)
6463

6564
eagerInitModuleNames = delegate?.getEagerInitModuleNames() ?: emptyList()
6665

@@ -278,13 +277,12 @@ public class TurboModuleManager(
278277
}
279278

280279
private external fun initHybrid(
281-
runtimeExecutor: RuntimeExecutor,
282280
jsCallInvokerHolder: CallInvokerHolderImpl,
283281
nativeMethodCallInvoker: NativeMethodCallInvokerHolderImpl,
284282
tmmDelegate: TurboModuleManagerDelegate?,
285283
): HybridData
286284

287-
private external fun installJSIBindings()
285+
private external fun installJSIBindings(runtimeExecutor: RuntimeExecutor)
288286

289287
override fun invalidate() {
290288
/*

packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,24 +95,20 @@ class JMethodDescriptor : public jni::JavaClass<JMethodDescriptor> {
9595
} // namespace
9696

9797
TurboModuleManager::TurboModuleManager(
98-
RuntimeExecutor runtimeExecutor,
9998
std::shared_ptr<CallInvoker> jsCallInvoker,
10099
std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker,
101100
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate)
102-
: runtimeExecutor_(std::move(runtimeExecutor)),
103-
jsCallInvoker_(std::move(jsCallInvoker)),
101+
: jsCallInvoker_(std::move(jsCallInvoker)),
104102
nativeMethodCallInvoker_(std::move(nativeMethodCallInvoker)),
105103
delegate_(jni::make_global(delegate)) {}
106104

107105
jni::local_ref<TurboModuleManager::jhybriddata> TurboModuleManager::initHybrid(
108106
jni::alias_ref<jhybridobject> /* unused */,
109-
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor,
110107
jni::alias_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder,
111108
jni::alias_ref<NativeMethodCallInvokerHolder::javaobject>
112109
nativeMethodCallInvokerHolder,
113110
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate) {
114111
return makeCxxInstance(
115-
runtimeExecutor->cthis()->get(),
116112
jsCallInvokerHolder->cthis()->getCallInvoker(),
117113
nativeMethodCallInvokerHolder->cthis()->getNativeMethodCallInvoker(),
118114
delegate);
@@ -323,13 +319,14 @@ std::shared_ptr<TurboModule> TurboModuleManager::getLegacyModule(
323319
}
324320

325321
void TurboModuleManager::installJSIBindings(
326-
jni::alias_ref<jhybridobject> javaPart) {
322+
jni::alias_ref<jhybridobject> javaPart,
323+
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor) {
327324
auto cxxPart = javaPart->cthis();
328325
if (cxxPart == nullptr || !cxxPart->jsCallInvoker_) {
329326
return; // Runtime doesn't exist when attached to Chrome debugger.
330327
}
331328

332-
cxxPart->runtimeExecutor_(
329+
runtimeExecutor->cthis()->get()(
333330
[javaPart = jni::make_global(javaPart)](jsi::Runtime& runtime) {
334331
TurboModuleBinding::install(
335332
runtime,

packages/react-native/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ class TurboModuleManager : public jni::HybridClass<TurboModuleManager> {
2727
static auto constexpr kJavaDescriptor = "Lcom/facebook/react/internal/turbomodule/core/TurboModuleManager;";
2828
static jni::local_ref<jhybriddata> initHybrid(
2929
jni::alias_ref<jhybridobject> /* unused */,
30-
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor,
3130
jni::alias_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder,
3231
jni::alias_ref<NativeMethodCallInvokerHolder::javaobject> nativeMethodCallInvokerHolder,
3332
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate);
@@ -52,12 +51,13 @@ class TurboModuleManager : public jni::HybridClass<TurboModuleManager> {
5251
ModuleCache legacyModuleCache_;
5352

5453
explicit TurboModuleManager(
55-
RuntimeExecutor runtimeExecutor,
5654
std::shared_ptr<CallInvoker> jsCallInvoker,
5755
std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker,
5856
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate);
5957

60-
static void installJSIBindings(jni::alias_ref<jhybridobject> javaPart);
58+
static void installJSIBindings(
59+
jni::alias_ref<jhybridobject> javaPart,
60+
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor);
6161

6262
static TurboModuleProviderFunctionTypeWithRuntime createTurboModuleProvider(jni::alias_ref<jhybridobject> javaPart);
6363
std::shared_ptr<TurboModule>

0 commit comments

Comments
 (0)