Skip to content

Commit f33e0f7

Browse files
shwantongabrieldonadel
authored andcommitted
Add guard for custom module provider lookup in TMManager (facebook#49738)
Summary: Pull Request resolved: facebook#49738 **Context** - D70012142 added TM module provider support - This was causing RN MacOS to silently fail to load any platform modules since it didn't implement the delegate method Changelog: [iOS][Fixed] - Add guard for custom module provider lookup in TMManager Reviewed By: sbuggay Differential Revision: D70357542 fbshipit-source-id: 5b338616655ecb84cdb3c60e243fdb99444af657
1 parent f12a650 commit f33e0f7

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -493,19 +493,21 @@ - (BOOL)_isLegacyModuleClass:(Class)moduleClass
493493

494494
- (id<RCTModuleProvider>)_moduleProviderForName:(const char *)moduleName
495495
{
496-
id<RCTModuleProvider> moduleProvider = [_delegate getModuleProvider:moduleName];
497-
BOOL isTurboModule = [self _isTurboModule:moduleName];
498-
if (RCTTurboModuleEnabled() && !isTurboModule && !moduleProvider) {
499-
return nil;
500-
}
496+
if ([_delegate respondsToSelector:@selector(getModuleProvider:)]) {
497+
id<RCTModuleProvider> moduleProvider = [_delegate getModuleProvider:moduleName];
498+
BOOL isTurboModule = [self _isTurboModule:moduleName];
499+
if (RCTTurboModuleEnabled() && !isTurboModule && !moduleProvider) {
500+
return nil;
501+
}
501502

502-
if (moduleProvider) {
503-
if ([moduleProvider conformsToProtocol:@protocol(RCTTurboModule)]) {
504-
// moduleProvider is also a TM, we need to initialize objectiveC properties, like the dispatch queue
505-
return (id<RCTModuleProvider>)[self _provideObjCModule:moduleName moduleProvider:moduleProvider];
503+
if (moduleProvider) {
504+
if ([moduleProvider conformsToProtocol:@protocol(RCTTurboModule)]) {
505+
// moduleProvider is also a TM, we need to initialize objectiveC properties, like the dispatch queue
506+
return (id<RCTModuleProvider>)[self _provideObjCModule:moduleName moduleProvider:moduleProvider];
507+
}
508+
// module is Cxx module
509+
return moduleProvider;
506510
}
507-
// module is Cxx module
508-
return moduleProvider;
509511
}
510512

511513
// No module provider, the Module is registered without Codegen

0 commit comments

Comments
 (0)