diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp index e74e8025c267..a42669c53bb0 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -13,6 +13,8 @@ #include #include #include +#include +#include #include #include #include @@ -23,6 +25,7 @@ #include #include #include +#include #include namespace facebook::react { @@ -43,13 +46,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 +211,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..5723f4d0e545 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h @@ -11,11 +11,11 @@ #include #include +#include +#include #include #include -#include -#include #include #include #include @@ -31,11 +31,14 @@ #include #include #include -#include #include namespace facebook::react { +class CdpMetricsReporter; +class CdpPerfIssuesReporter; +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_; /**