diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk index be9ba3b82ab..f590cb77f32 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk +++ b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk @@ -50,7 +50,7 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) LOCAL_CFLAGS += -fexceptions -frtti -std=c++17 -Wall -LOCAL_SHARED_LIBRARIES = libfb libfbjni libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES = libfb libfbjni libreact_nativemodule_core libjsi LOCAL_STATIC_LIBRARIES = libcallinvokerholder libreactperfloggerjni diff --git a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp index fd6d501145e..094e36b25c5 100644 --- a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp +++ b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.cpp @@ -17,28 +17,5 @@ TurboModule::TurboModule( std::shared_ptr jsInvoker) : name_(name), jsInvoker_(jsInvoker) {} -TurboModule::~TurboModule() {} - -jsi::Value TurboModule::get( - jsi::Runtime &runtime, - const jsi::PropNameID &propName) { - std::string propNameUtf8 = propName.utf8(runtime); - auto p = methodMap_.find(propNameUtf8); - if (p == methodMap_.end()) { - // Method was not found, let JS decide what to do. - return jsi::Value::undefined(); - } - MethodMetadata meta = p->second; - return jsi::Function::createFromHostFunction( - runtime, - propName, - static_cast(meta.argCount), - [this, meta]( - facebook::jsi::Runtime &rt, - const facebook::jsi::Value &thisVal, - const facebook::jsi::Value *args, - size_t count) { return meta.invoker(rt, *this, args, count); }); -} - } // namespace react } // namespace facebook diff --git a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h index 17acda2cf33..7d9189f10e7 100644 --- a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +++ b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h @@ -38,11 +38,27 @@ enum TurboModuleMethodValueKind { class JSI_EXPORT TurboModule : public facebook::jsi::HostObject { public: TurboModule(const std::string &name, std::shared_ptr jsInvoker); - virtual ~TurboModule(); virtual facebook::jsi::Value get( facebook::jsi::Runtime &runtime, - const facebook::jsi::PropNameID &propName) override; + const facebook::jsi::PropNameID &propName) override { + std::string propNameUtf8 = propName.utf8(runtime); + auto p = methodMap_.find(propNameUtf8); + if (p == methodMap_.end()) { + // Method was not found, let JS decide what to do. + return jsi::Value::undefined(); + } + MethodMetadata meta = p->second; + return jsi::Function::createFromHostFunction( + runtime, + propName, + static_cast(meta.argCount), + [this, meta]( + facebook::jsi::Runtime &rt, + const facebook::jsi::Value &thisVal, + const facebook::jsi::Value *args, + size_t count) { return meta.invoker(rt, *this, args, count); }); + } const std::string name_; std::shared_ptr jsInvoker_;