From f21e79d5e13dfa0fdd47dfe36b51a87bcc9dc74b Mon Sep 17 00:00:00 2001 From: Natansh Verma Date: Wed, 8 Jul 2015 00:20:05 -0700 Subject: [PATCH] Revert "[ReactNative] Fix crash when reload during profile" --- React/Base/RCTBatchedBridge.m | 12 ------------ React/Base/RCTProfile.h | 13 ------------- React/Base/RCTProfile.m | 8 +++----- React/Views/RCTNavigator.m | 2 +- 4 files changed, 4 insertions(+), 31 deletions(-) diff --git a/React/Base/RCTBatchedBridge.m b/React/Base/RCTBatchedBridge.m index 569c7f779..9b77ad466 100644 --- a/React/Base/RCTBatchedBridge.m +++ b/React/Base/RCTBatchedBridge.m @@ -106,13 +106,6 @@ id RCTGetLatestExecutor(void) */ [self registerModules]; - /** - * If currently profiling, hook into the current instance - */ - if (RCTProfileIsProfiling()) { - RCTProfileHookModules(self); - } - /** * Start the application script */ @@ -371,13 +364,8 @@ RCT_NOT_IMPLEMENTED(-initWithBundleURL:(__unused NSURL *)bundleURL } moduleData.queue = nil; } - dispatch_group_notify(group, dispatch_get_main_queue(), ^{ [_javaScriptExecutor executeBlockOnJavaScriptQueue:^{ - if (RCTProfileIsProfiling()) { - RCTProfileUnhookModules(self); - } - [_jsDisplayLink invalidate]; _jsDisplayLink = nil; diff --git a/React/Base/RCTProfile.h b/React/Base/RCTProfile.h index 66cf40bf4..469a81552 100644 --- a/React/Base/RCTProfile.h +++ b/React/Base/RCTProfile.h @@ -103,16 +103,6 @@ RCT_EXTERN void RCTProfileImmediateEvent(NSString *, NSTimeInterval , NSString * RCTProfileEndEvent([NSString stringWithFormat:@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd)], category, arguments); \ } -/** - * Hook into a bridge instance to log all bridge module's method calls - */ -RCT_EXTERN void RCTProfileHookModules(RCTBridge *); - -/** - * Unhook from a given bridge instance's modules - */ -RCT_EXTERN void RCTProfileUnhookModules(RCTBridge *); - #else #define RCTProfileBeginFlowEvent() @@ -135,7 +125,4 @@ RCT_EXTERN void RCTProfileUnhookModules(RCTBridge *); #define RCTProfileBlock(block, ...) block -#define RCTProfileHookModules(...) -#define RCTProfileUnhookModules(...) - #endif diff --git a/React/Base/RCTProfile.m b/React/Base/RCTProfile.m index 4eeaf3e9d..62a17fe7b 100644 --- a/React/Base/RCTProfile.m +++ b/React/Base/RCTProfile.m @@ -144,17 +144,14 @@ static IMP RCTProfileMsgForward(NSObject *self, SEL selector) return imp; } -void RCTProfileHookModules(RCTBridge *bridge) +static void RCTProfileHookModules(RCTBridge *); +static void RCTProfileHookModules(RCTBridge *bridge) { for (RCTModuleData *moduleData in [bridge valueForKey:@"_modules"]) { [moduleData dispatchBlock:^{ Class moduleClass = moduleData.cls; Class proxyClass = objc_allocateClassPair(moduleClass, RCTProfileProxyClassName(moduleClass), 0); - if (!proxyClass) { - return; - } - unsigned int methodCount; Method *methods = class_copyMethodList(moduleClass, &methodCount); for (NSUInteger i = 0; i < methodCount; i++) { @@ -188,6 +185,7 @@ void RCTProfileHookModules(RCTBridge *bridge) } } +void RCTProfileUnhookModules(RCTBridge *); void RCTProfileUnhookModules(RCTBridge *bridge) { for (RCTModuleData *moduleData in [bridge valueForKey:@"_modules"]) { diff --git a/React/Views/RCTNavigator.m b/React/Views/RCTNavigator.m index ff91b0b54..63e3d8023 100644 --- a/React/Views/RCTNavigator.m +++ b/React/Views/RCTNavigator.m @@ -436,7 +436,7 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder) */ - (UIView *)reactSuperview { - RCTAssert(!_bridge.isValid || self.superview != nil, @"put reactNavSuperviewLink back"); + RCTAssert(self.superview != nil, @"put reactNavSuperviewLink back"); return self.superview ? self.superview : self.reactNavSuperviewLink; }