mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Instrument RCTModuleData create
Summary: `RCTModuleData` holds our NativeModule classes/objects. This diff instruments `RCTModuleData` create. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D21415433 fbshipit-source-id: 7738f763c185e20f756d9bb2eff4a9493cde74e8
This commit is contained in:
committed by
Facebook GitHub Bot
parent
c98f36c676
commit
0b7bcd36ef
@@ -27,6 +27,7 @@
|
||||
#import <React/RCTRedBox.h>
|
||||
#import <React/RCTReloadCommand.h>
|
||||
#import <React/RCTUtils.h>
|
||||
#import <ReactCommon/NativeModulePerfLogger.h>
|
||||
#import <cxxreact/CxxNativeModule.h>
|
||||
#import <cxxreact/Instance.h>
|
||||
#import <cxxreact/JSBundleType.h>
|
||||
@@ -68,6 +69,12 @@ typedef NS_ENUM(NSUInteger, RCTBridgeFields) {
|
||||
|
||||
namespace {
|
||||
|
||||
int32_t getUniqueId()
|
||||
{
|
||||
static std::atomic<int32_t> counter{0};
|
||||
return counter++;
|
||||
}
|
||||
|
||||
class GetDescAdapter : public JSExecutorFactory {
|
||||
public:
|
||||
GetDescAdapter(RCTCxxBridge *bridge, std::shared_ptr<JSExecutorFactory> factory) : bridge_(bridge), factory_(factory)
|
||||
@@ -653,7 +660,10 @@ struct RCTInstanceCallback : public InstanceCallback {
|
||||
|
||||
// Instantiate moduleData
|
||||
// TODO #13258411: can we defer this until config generation?
|
||||
int32_t moduleDataId = getUniqueId();
|
||||
NativeModulePerfLogger::getInstance().moduleDataCreateStart([moduleName UTF8String], moduleDataId);
|
||||
moduleData = [[RCTModuleData alloc] initWithModuleClass:moduleClass bridge:self];
|
||||
NativeModulePerfLogger::getInstance().moduleDataCreateEnd([moduleName UTF8String], moduleDataId);
|
||||
|
||||
_moduleDataByName[moduleName] = moduleData;
|
||||
[_moduleClassesByID addObject:moduleClass];
|
||||
@@ -713,7 +723,11 @@ struct RCTInstanceCallback : public InstanceCallback {
|
||||
}
|
||||
|
||||
// Instantiate moduleData container
|
||||
int32_t moduleDataId = getUniqueId();
|
||||
NativeModulePerfLogger::getInstance().moduleDataCreateStart([moduleName UTF8String], moduleDataId);
|
||||
RCTModuleData *moduleData = [[RCTModuleData alloc] initWithModuleInstance:module bridge:self];
|
||||
NativeModulePerfLogger::getInstance().moduleDataCreateEnd([moduleName UTF8String], moduleDataId);
|
||||
|
||||
_moduleDataByName[moduleName] = moduleData;
|
||||
[_moduleClassesByID addObject:moduleClass];
|
||||
[_moduleDataByID addObject:moduleData];
|
||||
@@ -760,7 +774,10 @@ struct RCTInstanceCallback : public InstanceCallback {
|
||||
}
|
||||
}
|
||||
|
||||
int32_t moduleDataId = getUniqueId();
|
||||
NativeModulePerfLogger::getInstance().moduleDataCreateStart([moduleName UTF8String], moduleDataId);
|
||||
moduleData = [[RCTModuleData alloc] initWithModuleClass:moduleClass bridge:self];
|
||||
NativeModulePerfLogger::getInstance().moduleDataCreateEnd([moduleName UTF8String], moduleDataId);
|
||||
|
||||
_moduleDataByName[moduleName] = moduleData;
|
||||
[_moduleClassesByID addObject:moduleClass];
|
||||
|
||||
Reference in New Issue
Block a user