Fix double React perflogger creation
Reviewed By: mmmulani Differential Revision: D3599003 fbshipit-source-id: 25090309c92127b403d1df6a8b7c18ad5a088b5e
This commit is contained in:
parent
09fff496c9
commit
82c8129627
|
@ -57,6 +57,7 @@ RCT_EXTERN NSArray<Class> *RCTGetModuleClasses(void);
|
||||||
@synthesize flowIDMapLock = _flowIDMapLock;
|
@synthesize flowIDMapLock = _flowIDMapLock;
|
||||||
@synthesize loading = _loading;
|
@synthesize loading = _loading;
|
||||||
@synthesize valid = _valid;
|
@synthesize valid = _valid;
|
||||||
|
@synthesize performanceLogger = _performanceLogger;
|
||||||
|
|
||||||
- (instancetype)initWithParentBridge:(RCTBridge *)bridge
|
- (instancetype)initWithParentBridge:(RCTBridge *)bridge
|
||||||
{
|
{
|
||||||
|
@ -68,6 +69,10 @@ RCT_EXTERN NSArray<Class> *RCTGetModuleClasses(void);
|
||||||
launchOptions:bridge.launchOptions]) {
|
launchOptions:bridge.launchOptions]) {
|
||||||
_parentBridge = bridge;
|
_parentBridge = bridge;
|
||||||
|
|
||||||
|
_performanceLogger = [RCTPerformanceLogger new];
|
||||||
|
[_performanceLogger markStartForTag:RCTPLBridgeStartup];
|
||||||
|
[_performanceLogger markStartForTag:RCTPLTTI];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Initial State
|
* Set Initial State
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -10,14 +10,9 @@
|
||||||
#import "RCTBridge.h"
|
#import "RCTBridge.h"
|
||||||
|
|
||||||
@class RCTModuleData;
|
@class RCTModuleData;
|
||||||
@class RCTPerformanceLogger;
|
|
||||||
@protocol RCTJavaScriptExecutor;
|
@protocol RCTJavaScriptExecutor;
|
||||||
|
|
||||||
@interface RCTBridge ()
|
@interface RCTBridge ()
|
||||||
{
|
|
||||||
@public
|
|
||||||
RCTPerformanceLogger *_performanceLogger;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Private designated initializer
|
// Private designated initializer
|
||||||
- (instancetype)initWithDelegate:(id<RCTBridgeDelegate>)delegate
|
- (instancetype)initWithDelegate:(id<RCTBridgeDelegate>)delegate
|
||||||
|
@ -134,9 +129,9 @@
|
||||||
|
|
||||||
@interface RCTBatchedBridge : RCTBridge <RCTInvalidating>
|
@interface RCTBatchedBridge : RCTBridge <RCTInvalidating>
|
||||||
|
|
||||||
@property (nonatomic, weak) RCTBridge *parentBridge;
|
@property (nonatomic, weak, readonly) RCTBridge *parentBridge;
|
||||||
@property (nonatomic, weak) id<RCTJavaScriptExecutor> javaScriptExecutor;
|
@property (nonatomic, weak, readonly) id<RCTJavaScriptExecutor> javaScriptExecutor;
|
||||||
@property (nonatomic, assign) BOOL moduleSetupComplete;
|
@property (nonatomic, assign, readonly) BOOL moduleSetupComplete;
|
||||||
|
|
||||||
- (instancetype)initWithParentBridge:(RCTBridge *)bridge NS_DESIGNATED_INITIALIZER;
|
- (instancetype)initWithParentBridge:(RCTBridge *)bridge NS_DESIGNATED_INITIALIZER;
|
||||||
|
|
||||||
|
|
|
@ -132,15 +132,13 @@ static RCTBridge *RCTCurrentBridgeInstance = nil;
|
||||||
launchOptions:(NSDictionary *)launchOptions
|
launchOptions:(NSDictionary *)launchOptions
|
||||||
{
|
{
|
||||||
if (self = [super init]) {
|
if (self = [super init]) {
|
||||||
_performanceLogger = [RCTPerformanceLogger new];
|
|
||||||
[_performanceLogger markStartForTag:RCTPLBridgeStartup];
|
|
||||||
[_performanceLogger markStartForTag:RCTPLTTI];
|
|
||||||
|
|
||||||
_delegate = delegate;
|
_delegate = delegate;
|
||||||
_bundleURL = bundleURL;
|
_bundleURL = bundleURL;
|
||||||
_moduleProvider = block;
|
_moduleProvider = block;
|
||||||
_launchOptions = [launchOptions copy];
|
_launchOptions = [launchOptions copy];
|
||||||
|
|
||||||
[self setUp];
|
[self setUp];
|
||||||
|
|
||||||
RCTExecuteOnMainQueue(^{ [self bindKeys]; });
|
RCTExecuteOnMainQueue(^{ [self bindKeys]; });
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
|
@ -182,6 +180,11 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (RCTPerformanceLogger *)performanceLogger
|
||||||
|
{
|
||||||
|
return self.batchedBridge.performanceLogger;
|
||||||
|
}
|
||||||
|
|
||||||
- (NSArray<Class> *)moduleClasses
|
- (NSArray<Class> *)moduleClasses
|
||||||
{
|
{
|
||||||
return self.batchedBridge.moduleClasses;
|
return self.batchedBridge.moduleClasses;
|
||||||
|
|
|
@ -85,7 +85,7 @@ typedef NS_ENUM(NSUInteger, RCTPLTag) {
|
||||||
- (NSArray<NSNumber *> *)valuesForTags;
|
- (NSArray<NSNumber *> *)valuesForTags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a duration (stop_time - start_time) for given RCTPLTag.
|
* Returns a duration in ms (stop_time - start_time) for given RCTPLTag.
|
||||||
*/
|
*/
|
||||||
- (int64_t)durationForTag:(RCTPLTag)tag;
|
- (int64_t)durationForTag:(RCTPLTag)tag;
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
#import "RCTAssert.h"
|
#import "RCTAssert.h"
|
||||||
#import "RCTBridge+Private.h"
|
#import "RCTBridge.h"
|
||||||
#import "RCTEventDispatcher.h"
|
#import "RCTEventDispatcher.h"
|
||||||
#import "RCTKeyCommands.h"
|
#import "RCTKeyCommands.h"
|
||||||
#import "RCTLog.h"
|
#import "RCTLog.h"
|
||||||
|
@ -92,7 +92,7 @@ NSString *const RCTContentDidAppearNotification = @"RCTContentDidAppearNotificat
|
||||||
object:self];
|
object:self];
|
||||||
|
|
||||||
if (!_bridge.loading) {
|
if (!_bridge.loading) {
|
||||||
[self bundleFinishedLoading:_bridge.batchedBridge];
|
[self bundleFinishedLoading:_bridge];
|
||||||
}
|
}
|
||||||
|
|
||||||
[self showLoadingView];
|
[self showLoadingView];
|
||||||
|
@ -259,7 +259,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
|
||||||
_appProperties = [appProperties copy];
|
_appProperties = [appProperties copy];
|
||||||
|
|
||||||
if (_contentView && _bridge.valid && !_bridge.loading) {
|
if (_contentView && _bridge.valid && !_bridge.loading) {
|
||||||
[self runApplication:_bridge.batchedBridge];
|
[self runApplication:_bridge];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder:(nonnull NSCoder *)aDecoder)
|
||||||
- (void)insertReactSubview:(UIView *)subview atIndex:(NSInteger)atIndex
|
- (void)insertReactSubview:(UIView *)subview atIndex:(NSInteger)atIndex
|
||||||
{
|
{
|
||||||
[super insertReactSubview:subview atIndex:atIndex];
|
[super insertReactSubview:subview atIndex:atIndex];
|
||||||
[_bridge->_performanceLogger markStopForTag:RCTPLTTI];
|
[_bridge.performanceLogger markStopForTag:RCTPLTTI];
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
if (!self->_contentHasAppeared) {
|
if (!self->_contentHasAppeared) {
|
||||||
self->_contentHasAppeared = YES;
|
self->_contentHasAppeared = YES;
|
||||||
|
|
Loading…
Reference in New Issue