diff --git a/RNTester/RNTester/AppDelegate.mm b/RNTester/RNTester/AppDelegate.mm index 2819b4a42f..49766f32de 100644 --- a/RNTester/RNTester/AppDelegate.mm +++ b/RNTester/RNTester/AppDelegate.mm @@ -21,6 +21,7 @@ #import #import #import +#import #import @@ -114,7 +115,9 @@ - (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge { - _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge delegate:self]; + _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge + delegate:self + jsInvoker:std::make_shared(bridge.reactInstance)]; __weak __typeof(self) weakSelf = self; return std::make_unique([weakSelf, bridge](facebook::jsi::Runtime &runtime) { if (!bridge) { diff --git a/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.h b/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.h index 87724c49a4..7fdb9fd017 100644 --- a/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.h +++ b/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.h @@ -38,7 +38,9 @@ @interface RCTTurboModuleManager : NSObject -- (instancetype)initWithBridge:(RCTBridge *)bridge delegate:(id)delegate; +- (instancetype)initWithBridge:(RCTBridge *)bridge + delegate:(id)delegate + jsInvoker:(std::shared_ptr)jsInvoker; - (void)installJSBindingWithRuntime:(facebook::jsi::Runtime *)runtime; diff --git a/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm b/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm index 841f925680..004aa7113c 100644 --- a/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm +++ b/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm @@ -17,7 +17,6 @@ #import #import #import -#import #import #import @@ -63,10 +62,12 @@ static Class getFallbackClassFromName(const char *name) std::atomic _invalidating; } -- (instancetype)initWithBridge:(RCTBridge *)bridge delegate:(id)delegate +- (instancetype)initWithBridge:(RCTBridge *)bridge + delegate:(id)delegate + jsInvoker:(std::shared_ptr)jsInvoker { if (self = [super init]) { - _jsInvoker = std::make_shared(bridge.reactInstance); + _jsInvoker = jsInvoker; _delegate = delegate; _bridge = bridge; _invalidating = false; @@ -353,10 +354,7 @@ static Class getFallbackClassFromName(const char *name) [[NSNotificationCenter defaultCenter] postNotificationName:RCTDidInitializeModuleNotification object:strongBridge - userInfo:@{ - @"module" : module, - @"bridge" : RCTNullIfNil([strongBridge parentBridge]) - }]; + userInfo:@{@"module" : module, @"bridge" : RCTNullIfNil([strongBridge parentBridge])}]; }; if ([[module class] respondsToSelector:@selector(requiresMainQueueSetup)] && @@ -445,11 +443,11 @@ static Class getFallbackClassFromName(const char *name) if (methodQueue) { dispatch_group_enter(moduleInvalidationGroup); [bridge - dispatchBlock:^{ - [((id)module) invalidate]; - dispatch_group_leave(moduleInvalidationGroup); - } - queue:methodQueue]; + dispatchBlock:^{ + [((id)module) invalidate]; + dispatch_group_leave(moduleInvalidationGroup); + } + queue:methodQueue]; continue; } } @@ -481,10 +479,10 @@ static Class getFallbackClassFromName(const char *name) // Backward-compatibility: RCTInvalidating handling, but not adhering to desired methodQueue. for (const auto &p : rctCacheCopy) { - id module = p.second; - if ([module respondsToSelector:@selector(invalidate)]) { - [((id)module) invalidate]; - } + id module = p.second; + if ([module respondsToSelector:@selector(invalidate)]) { + [((id)module) invalidate]; + } } {