From 421bc5fc7fdad32b006e373691ebec5f958ca6e9 Mon Sep 17 00:00:00 2001 From: Peter Argany Date: Wed, 25 Mar 2020 11:53:51 -0700 Subject: [PATCH] Remove RCTExportModule log spam Summary: The bridge complains if modules aren't exported, which isn't really helpful with lazily loaded modules and turbo modules. I considered only turning this off when TurboModules is enabled, but figured we'd be killing this soon anyways... If anyone feels strongly I can go that approach. Changelog: [iOS][Internal] Remove RCTExportModule log spam Reviewed By: shergin Differential Revision: D20629575 fbshipit-source-id: d32d9fe244c4d06acfee982fca7c7f63da294dc5 --- React/Base/RCTBridge+Private.h | 5 ---- React/Base/RCTBridge.m | 47 --------------------------------- React/CxxBridge/RCTCxxBridge.mm | 7 ----- 3 files changed, 59 deletions(-) diff --git a/React/Base/RCTBridge+Private.h b/React/Base/RCTBridge+Private.h index 2bab73d3086..70a20f0b00f 100644 --- a/React/Base/RCTBridge+Private.h +++ b/React/Base/RCTBridge+Private.h @@ -11,11 +11,6 @@ @protocol RCTJavaScriptExecutor; RCT_EXTERN NSArray *RCTGetModuleClasses(void); - -#if RCT_DEBUG -RCT_EXTERN void RCTVerifyAllModulesExported(NSArray *extraModules); -#endif - RCT_EXTERN void RCTRegisterModule(Class); @interface RCTBridge () diff --git a/React/Base/RCTBridge.m b/React/Base/RCTBridge.m index 32eca6eeb4d..81314b3d3b3 100644 --- a/React/Base/RCTBridge.m +++ b/React/Base/RCTBridge.m @@ -113,53 +113,6 @@ void RCTEnableTurboModule(BOOL enabled) turboModuleEnabled = enabled; } -#if RCT_DEBUG -void RCTVerifyAllModulesExported(NSArray *extraModules) -{ - // Check for unexported modules - unsigned int classCount; - Class *classes = objc_copyClassList(&classCount); - - NSMutableSet *moduleClasses = [NSMutableSet new]; - [moduleClasses addObjectsFromArray:RCTGetModuleClasses()]; - [moduleClasses addObjectsFromArray:[extraModules valueForKeyPath:@"class"]]; - - for (unsigned int i = 0; i < classCount; i++) { - Class cls = classes[i]; - if (strncmp(class_getName(cls), "RCTCxxModule", strlen("RCTCxxModule")) == 0) { - continue; - } - Class superclass = cls; - while (superclass) { - if (class_conformsToProtocol(superclass, @protocol(RCTBridgeModule))) { - if ([moduleClasses containsObject:cls]) { - break; - } - - // Verify it's not a super-class of one of our moduleClasses - BOOL isModuleSuperClass = NO; - for (Class moduleClass in moduleClasses) { - if ([moduleClass isSubclassOfClass:cls]) { - isModuleSuperClass = YES; - break; - } - } - if (isModuleSuperClass) { - break; - } - - // Note: Some modules may be lazily loaded and not exported up front, so this message is no longer a warning. - RCTLogInfo(@"Class %@ was not exported. Did you forget to use RCT_EXPORT_MODULE()?", cls); - break; - } - superclass = class_getSuperclass(superclass); - } - } - - free(classes); -} -#endif - @interface RCTBridge () @end diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm index 884c61776e1..4383cf5d5a4 100644 --- a/React/CxxBridge/RCTCxxBridge.mm +++ b/React/CxxBridge/RCTCxxBridge.mm @@ -679,13 +679,6 @@ struct RCTInstanceCallback : public InstanceCallback { RCT_PROFILE_END_EVENT(RCTProfileTagAlways, @""); -#if RCT_DEBUG - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - RCTVerifyAllModulesExported(extraModules); - }); -#endif - RCT_PROFILE_BEGIN_EVENT( RCTProfileTagAlways, @"-[RCTCxxBridge initModulesWithDispatchGroup:] preinitialized moduleData", nil); // Set up moduleData for pre-initialized module instances