From 8ae185280d4033ed92dbe5bfe3cde3f29bcf8160 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Mon, 4 Feb 2019 14:52:53 -0800 Subject: [PATCH] TM iOS: guard against nullptr in module lookup Summary: Just tightened up the lookup logic to guard against nullptr. Reviewed By: RSNara Differential Revision: D13948001 fbshipit-source-id: 55bf46619712e60e195ea12f2b8eb799f80a3bbe --- .../turbomodule/core/platform/ios/RCTTurboModuleManager.mm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm b/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm index 67adefc44ab..a44146ab4e0 100644 --- a/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm +++ b/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm @@ -124,6 +124,7 @@ static Class getFallbackClassFromName(const char *name) { // allow it to do so. if ([module respondsToSelector:@selector(getTurboModuleWithJsInvoker:)]) { auto turboModule = [module getTurboModuleWithJsInvoker:_jsInvoker]; + assert(turboModule != nullptr); _turboModuleCache.insert({moduleName, turboModule}); return turboModule; } @@ -144,7 +145,9 @@ static Class getFallbackClassFromName(const char *name) { * Step 2d: Return an exact sub-class of ObjC TurboModule */ auto turboModule = [_delegate getTurboModule:moduleName instance:module jsInvoker:_jsInvoker]; - _turboModuleCache.insert({moduleName, turboModule}); + if (turboModule != nullptr) { + _turboModuleCache.insert({moduleName, turboModule}); + } return turboModule; }