diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp index e74e8025c267..e81660b312ec 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -13,16 +13,21 @@ #include #include #include +#include +#include +#include #include #include #include #include #include #include +#include #include #include #include #include +#include #include namespace facebook::react { @@ -43,13 +48,15 @@ Scheduler::Scheduler( if (ReactNativeFeatureFlags::enableBridgelessArchitecture() && ReactNativeFeatureFlags::cdpInteractionMetricsEnabled()) { - cdpMetricsReporter_.emplace(CdpMetricsReporter{runtimeExecutor_}); - performanceEntryReporter_->addEventListener(&*cdpMetricsReporter_); + cdpMetricsReporter_ = + std::make_unique(runtimeExecutor_); + performanceEntryReporter_->addEventListener(cdpMetricsReporter_.get()); } if (ReactNativeFeatureFlags::perfIssuesEnabled()) { - cdpPerfIssuesReporter_.emplace(CdpPerfIssuesReporter{runtimeExecutor_}); - performanceEntryReporter_->addEventListener(&*cdpPerfIssuesReporter_); + cdpPerfIssuesReporter_ = + std::make_unique(runtimeExecutor_); + performanceEntryReporter_->addEventListener(cdpPerfIssuesReporter_.get()); } eventPerformanceLogger_ = @@ -206,10 +213,11 @@ Scheduler::~Scheduler() { uiManager_->setViewTransitionDelegate(nullptr); if (cdpMetricsReporter_) { - performanceEntryReporter_->removeEventListener(&*cdpMetricsReporter_); + performanceEntryReporter_->removeEventListener(cdpMetricsReporter_.get()); } if (cdpPerfIssuesReporter_) { - performanceEntryReporter_->removeEventListener(&*cdpPerfIssuesReporter_); + performanceEntryReporter_->removeEventListener( + cdpPerfIssuesReporter_.get()); } // Then, let's verify that the requirement was satisfied. diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h index 1f5a59d1e1e2..59c8f6ceac82 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h @@ -11,19 +11,17 @@ #include #include +#include +#include #include #include -#include -#include -#include #include #include #include #include #include #include -#include #include #include #include @@ -31,11 +29,16 @@ #include #include #include -#include #include namespace facebook::react { +class CdpMetricsReporter; +class CdpPerfIssuesReporter; +class EventPerformanceLogger; +class PerformanceEntryReporter; +class ViewTransitionModule; + /* * Scheduler coordinates Shadow Tree updates and event flows. */ @@ -142,8 +145,8 @@ class Scheduler final : public UIManagerDelegate { std::shared_ptr> eventDispatcher_; std::shared_ptr performanceEntryReporter_; - std::optional cdpMetricsReporter_; - std::optional cdpPerfIssuesReporter_; + std::unique_ptr cdpMetricsReporter_; + std::unique_ptr cdpPerfIssuesReporter_; std::shared_ptr eventPerformanceLogger_; /** diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h index 7d78c1ed5240..50ddbdca8015 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include