diff --git a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.h b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.h index 127b06fd474a67..d9b2c79bb3f87e 100644 --- a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.h +++ b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.h @@ -48,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN * Schedule a mounting transaction to be performed on the main thread. * Can be called from any thread. */ -- (void)scheduleTransaction:(facebook::react::MountingCoordinator::Shared)mountingCoordinator; +- (void)scheduleTransaction:(std::shared_ptr)mountingCoordinator; /** * Dispatch a command to be performed on the main thread. diff --git a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm index 1cdf1fde34a658..38a304bf115923 100644 --- a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm +++ b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm @@ -186,7 +186,7 @@ - (void)detachSurfaceFromView:(UIView *)view surfaceId:(SurfaceId)surfaceId componentViewDescriptor:rootViewDescriptor]; } -- (void)scheduleTransaction:(MountingCoordinator::Shared)mountingCoordinator +- (void)scheduleTransaction:(std::shared_ptr)mountingCoordinator { if (RCTIsMainQueue()) { // Already on the proper thread, so: diff --git a/packages/react-native/React/Fabric/RCTScheduler.h b/packages/react-native/React/Fabric/RCTScheduler.h index 379db1a6cbf415..f5df6a938c98cf 100644 --- a/packages/react-native/React/Fabric/RCTScheduler.h +++ b/packages/react-native/React/Fabric/RCTScheduler.h @@ -26,9 +26,10 @@ NS_ASSUME_NONNULL_BEGIN */ @protocol RCTSchedulerDelegate -- (void)schedulerDidFinishTransaction:(facebook::react::MountingCoordinator::Shared)mountingCoordinator; +- (void)schedulerDidFinishTransaction:(std::shared_ptr)mountingCoordinator; -- (void)schedulerShouldRenderTransactions:(facebook::react::MountingCoordinator::Shared)mountingCoordinator; +- (void)schedulerShouldRenderTransactions: + (std::shared_ptr)mountingCoordinator; - (void)schedulerDidDispatchCommand:(const facebook::react::ShadowView &)shadowView commandName:(const std::string &)commandName diff --git a/packages/react-native/React/Fabric/RCTScheduler.mm b/packages/react-native/React/Fabric/RCTScheduler.mm index e168791c5e4484..016af6dd209648 100644 --- a/packages/react-native/React/Fabric/RCTScheduler.mm +++ b/packages/react-native/React/Fabric/RCTScheduler.mm @@ -26,13 +26,13 @@ public: SchedulerDelegateProxy(void *scheduler) : scheduler_(scheduler) {} - void schedulerDidFinishTransaction(const MountingCoordinator::Shared &mountingCoordinator) override + void schedulerDidFinishTransaction(const std::shared_ptr &mountingCoordinator) override { RCTScheduler *scheduler = (__bridge RCTScheduler *)scheduler_; [scheduler.delegate schedulerDidFinishTransaction:mountingCoordinator]; } - void schedulerShouldRenderTransactions(const MountingCoordinator::Shared &mountingCoordinator) override + void schedulerShouldRenderTransactions(const std::shared_ptr &mountingCoordinator) override { RCTScheduler *scheduler = (__bridge RCTScheduler *)scheduler_; [scheduler.delegate schedulerShouldRenderTransactions:mountingCoordinator]; diff --git a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm index 53e274df36559b..b3c6340765f105 100644 --- a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm +++ b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm @@ -292,12 +292,12 @@ - (void)_applicationWillTerminate #pragma mark - RCTSchedulerDelegate -- (void)schedulerDidFinishTransaction:(MountingCoordinator::Shared)mountingCoordinator +- (void)schedulerDidFinishTransaction:(std::shared_ptr)mountingCoordinator { // no-op, we will flush the transaction from schedulerShouldRenderTransactions } -- (void)schedulerShouldRenderTransactions:(MountingCoordinator::Shared)mountingCoordinator +- (void)schedulerShouldRenderTransactions:(std::shared_ptr)mountingCoordinator { [_mountingManager scheduleTransaction:mountingCoordinator]; } diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp index c6074ca1dfa0af..cac043ee3a65e9 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp @@ -535,7 +535,7 @@ FabricUIManagerBinding::getMountingManager(const char* locationHint) { } void FabricUIManagerBinding::schedulerDidFinishTransaction( - const MountingCoordinator::Shared& mountingCoordinator) { + const std::shared_ptr& mountingCoordinator) { // We shouldn't be pulling the transaction here (which triggers diffing of // the trees to determine the mutations to run on the host platform), // but we have to due to current limitations in the Android implementation. @@ -564,7 +564,8 @@ void FabricUIManagerBinding::schedulerDidFinishTransaction( } void FabricUIManagerBinding::schedulerShouldRenderTransactions( - const MountingCoordinator::Shared& /* mountingCoordinator */) { + const std::shared_ptr< + const MountingCoordinator>& /* mountingCoordinator */) { auto mountingManager = getMountingManager("schedulerShouldRenderTransactions"); if (!mountingManager) { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h index 28941791ee7fc2..817c256c4d7675 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h @@ -101,10 +101,12 @@ class FabricUIManagerBinding : public jni::HybridClass, jni::alias_ref surfaceHandler); void schedulerDidFinishTransaction( - const MountingCoordinator::Shared& mountingCoordinator) override; + const std::shared_ptr& mountingCoordinator) + override; void schedulerShouldRenderTransactions( - const MountingCoordinator::Shared& mountingCoordinator) override; + const std::shared_ptr& mountingCoordinator) + override; void schedulerDidRequestPreliminaryViewAllocation( const ShadowNode& shadowNode) override; diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/MountingCoordinator.h b/packages/react-native/ReactCommon/react/renderer/mounting/MountingCoordinator.h index 179f1e0ca654c2..4042a446ad9664 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/MountingCoordinator.h +++ b/packages/react-native/ReactCommon/react/renderer/mounting/MountingCoordinator.h @@ -33,8 +33,6 @@ namespace facebook::react { */ class MountingCoordinator final { public: - using Shared = std::shared_ptr; - /* * The constructor is meant to be used only inside `ShadowTree`, and it's * `public` only to enable using with `std::make_shared<>`. diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp index 3a674a4ef42a00..26312ce5934b7f 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp @@ -231,7 +231,8 @@ CommitMode ShadowTree::getCommitMode() const { return commitMode_; } -MountingCoordinator::Shared ShadowTree::getMountingCoordinator() const { +std::shared_ptr ShadowTree::getMountingCoordinator() + const { return mountingCoordinator_; } diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.h b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.h index a24d55eff830d3..2c97dedba3a3ff 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.h +++ b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.h @@ -130,7 +130,7 @@ class ShadowTree final { */ void notifyDelegatesOfUpdates() const; - MountingCoordinator::Shared getMountingCoordinator() const; + std::shared_ptr getMountingCoordinator() const; private: constexpr static ShadowTreeRevision::Number INITIAL_REVISION{0}; @@ -148,7 +148,7 @@ class ShadowTree final { mutable ShadowTreeRevision currentRevision_; // Protected by `commitMutex_`. mutable ShadowTreeRevision::Number lastRevisionNumberWithNewState_; // Protected by `commitMutex_`. - MountingCoordinator::Shared mountingCoordinator_; + std::shared_ptr mountingCoordinator_; }; } // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h index a260c5f1c292ff..dbb0fecfc92c2e 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h @@ -33,7 +33,7 @@ class ShadowTreeDelegate { * Called right after Shadow Tree commit a new state of the tree. */ virtual void shadowTreeDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) const = 0; virtual ~ShadowTreeDelegate() noexcept = default; diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp index f1c44381f45b6f..0a685ede067cd8 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp @@ -34,7 +34,7 @@ class DummyShadowTreeDelegate : public ShadowTreeDelegate { }; void shadowTreeDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) const override {}; }; diff --git a/packages/react-native/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp b/packages/react-native/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp index 6a9e7f87cd72fe..d9cc6a3103df90 100644 --- a/packages/react-native/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +++ b/packages/react-native/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp @@ -43,7 +43,7 @@ void IntersectionObserverManager::observe( // (like on the Web) and we'd send the initial notification there, but as // we don't have it we have to run this check once and manually dispatch. auto& shadowTreeRegistry = uiManager.getShadowTreeRegistry(); - MountingCoordinator::Shared mountingCoordinator = nullptr; + std::shared_ptr mountingCoordinator = nullptr; RootShadowNode::Shared rootShadowNode = nullptr; shadowTreeRegistry.visit(surfaceId, [&](const ShadowTree& shadowTree) { mountingCoordinator = shadowTree.getMountingCoordinator(); diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp index a80f53afcc14cd..f5f37c91792def 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -284,7 +284,7 @@ void Scheduler::animationTick() const { #pragma mark - UIManagerDelegate void Scheduler::uiManagerDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) { SystraceSection s("Scheduler::uiManagerDidFinishTransaction"); diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h index 3977cbc2467957..0fb2394f8e4ff2 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h @@ -85,7 +85,7 @@ class Scheduler final : public UIManagerDelegate { #pragma mark - UIManagerDelegate void uiManagerDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) override; void uiManagerDidCreateShadowNode(const ShadowNode& shadowNode) override; void uiManagerDidDispatchCommand( diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h index e29ed8f465a54b..1f84bd582c2215 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h @@ -26,7 +26,8 @@ class SchedulerDelegate { * to construct a new one. */ virtual void schedulerDidFinishTransaction( - const MountingCoordinator::Shared& mountingCoordinator) = 0; + const std::shared_ptr& + mountingCoordinator) = 0; /* * Called when the runtime scheduler decides that one-or-more previously @@ -37,7 +38,8 @@ class SchedulerDelegate { * correctly apply changes, due to changes in Props representation. */ virtual void schedulerShouldRenderTransactions( - const MountingCoordinator::Shared& mountingCoordinator) = 0; + const std::shared_ptr& + mountingCoordinator) = 0; /* * Called right after a new ShadowNode was created. diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp index 9020a8d406c7bd..3d8d484efe7292 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp @@ -64,9 +64,9 @@ Size SurfaceManager::measureSurface( return size; } -MountingCoordinator::Shared SurfaceManager::findMountingCoordinator( - SurfaceId surfaceId) const noexcept { - auto mountingCoordinator = MountingCoordinator::Shared{}; +std::shared_ptr +SurfaceManager::findMountingCoordinator(SurfaceId surfaceId) const noexcept { + auto mountingCoordinator = std::shared_ptr{}; visit(surfaceId, [&](const SurfaceHandler& surfaceHandler) { mountingCoordinator = surfaceHandler.getMountingCoordinator(); diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h index a5526e176a3040..404185818acb5a 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h @@ -49,7 +49,7 @@ class SurfaceManager final { const LayoutConstraints& layoutConstraints, const LayoutContext& layoutContext) const noexcept; - MountingCoordinator::Shared findMountingCoordinator( + std::shared_ptr findMountingCoordinator( SurfaceId surfaceId) const noexcept; private: diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp index be8da13aad3e97..c381d77e3758cf 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp @@ -607,7 +607,7 @@ RootShadowNode::Unshared UIManager::shadowTreeWillCommit( } void UIManager::shadowTreeDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) const { SystraceSection s("UIManager::shadowTreeDidFinishTransaction"); diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h index fd6c87d524f8d2..a84845d9a035a8 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h @@ -119,7 +119,7 @@ class UIManager final : public ShadowTreeDelegate { #pragma mark - ShadowTreeDelegate void shadowTreeDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) const override; RootShadowNode::Unshared shadowTreeWillCommit( diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h index 4b196f4101c4cb..46b78957705670 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h @@ -23,7 +23,7 @@ class UIManagerDelegate { * For this moment the tree is already laid out and sealed. */ virtual void uiManagerDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) = 0; /* diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp b/packages/react-native/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp index 0cd1fe194fba38..ae6312baa09cdf 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp @@ -24,7 +24,7 @@ class FakeShadowTreeDelegate : public ShadowTreeDelegate { }; void shadowTreeDidFinishTransaction( - MountingCoordinator::Shared mountingCoordinator, + std::shared_ptr mountingCoordinator, bool mountSynchronously) const override {}; };