Make TurboModuleManager accept a CallInvoker for the NativeModules thread

Summary:
In the previous diffs, I:
1. D17422165: Created a `CallInvoker` for the NativeModules thread.
2. D17422164: Exposed this `CallInvoker` via `CatalystInstance.getNativeCallInvokerHolder()`.

In this diff, I:
1. Make TurboModuleManager accept the NativeModules thread `CallInvoker` as a constructor argument.

Reviewed By: PeteTheHeat

Differential Revision: D17422163

fbshipit-source-id: cbaac2fc06f7f726d89e0c545154123ad7410e62
This commit is contained in:
Ramanpreet Nara 2019-09-20 10:48:50 -07:00 коммит произвёл Facebook Github Bot
Родитель 77fe4f087d
Коммит 10d89b1eff
3 изменённых файлов: 20 добавлений и 4 удалений

Просмотреть файл

@ -39,8 +39,14 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
public TurboModuleManager(
JavaScriptContextHolder jsContext,
TurboModuleManagerDelegate tmmDelegate,
CallInvokerHolder instanceHolder) {
mHybridData = initHybrid(jsContext.get(), (CallInvokerHolderImpl) instanceHolder, tmmDelegate);
CallInvokerHolder jsCallInvokerHolder,
CallInvokerHolder nativeCallInvokerHolder) {
mHybridData =
initHybrid(
jsContext.get(),
(CallInvokerHolderImpl) jsCallInvokerHolder,
(CallInvokerHolderImpl) nativeCallInvokerHolder,
tmmDelegate);
mTurbomoduleManagerDelegate = tmmDelegate;
}
@ -78,7 +84,10 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
}
private native HybridData initHybrid(
long jsContext, CallInvokerHolderImpl jsQueue, TurboModuleManagerDelegate tmmDelegate);
long jsContext,
CallInvokerHolderImpl jsCallInvokerHolder,
CallInvokerHolderImpl nativeCallInvokerHolder,
TurboModuleManagerDelegate tmmDelegate);
private native void installJSIBindings();

Просмотреть файл

@ -24,11 +24,13 @@ TurboModuleManager::TurboModuleManager(
jni::alias_ref<TurboModuleManager::javaobject> jThis,
jsi::Runtime* rt,
std::shared_ptr<CallInvoker> jsCallInvoker,
std::shared_ptr<CallInvoker> nativeCallInvoker,
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate
):
javaPart_(jni::make_global(jThis)),
runtime_(rt),
jsCallInvoker_(jsCallInvoker),
nativeCallInvoker_(nativeCallInvoker),
delegate_(jni::make_global(delegate))
{}
@ -36,11 +38,13 @@ jni::local_ref<TurboModuleManager::jhybriddata> TurboModuleManager::initHybrid(
jni::alias_ref<jhybridobject> jThis,
jlong jsContext,
jni::alias_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder,
jni::alias_ref<CallInvokerHolder::javaobject> nativeCallInvokerHolder,
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate
) {
auto jsCallInvoker = jsCallInvokerHolder->cthis()->getCallInvoker();
auto nativeCallInvoker = nativeCallInvokerHolder->cthis()->getCallInvoker();
return makeCxxInstance(jThis, (jsi::Runtime *) jsContext, jsCallInvoker, delegate);
return makeCxxInstance(jThis, (jsi::Runtime *) jsContext, jsCallInvoker, nativeCallInvoker, delegate);
}
void TurboModuleManager::registerNatives() {

Просмотреть файл

@ -28,6 +28,7 @@ public:
jni::alias_ref<jhybridobject> jThis,
jlong jsContext,
jni::alias_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder,
jni::alias_ref<CallInvokerHolder::javaobject> nativeCallInvokerHolder,
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate
);
static void registerNatives();
@ -36,6 +37,7 @@ private:
jni::global_ref<TurboModuleManager::javaobject> javaPart_;
jsi::Runtime* runtime_;
std::shared_ptr<CallInvoker> jsCallInvoker_;
std::shared_ptr<CallInvoker> nativeCallInvoker_;
jni::global_ref<TurboModuleManagerDelegate::javaobject> delegate_;
/**
@ -51,6 +53,7 @@ private:
jni::alias_ref<TurboModuleManager::jhybridobject> jThis,
jsi::Runtime *rt,
std::shared_ptr<CallInvoker> jsCallInvoker,
std::shared_ptr<CallInvoker> nativeCallInvoker,
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate
);
};