diff --git a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.h b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.h index 127b06fd474..d9b2c79bb3f 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 1cdf1fde34a..38a304bf115 100644 --- a/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm +++ b/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm @@ -186,7 +186,7 @@ static void RCTPerformMountInstructions( 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 379db1a6cbf..f5df6a938c9 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 e168791c5e4..016af6dd209 100644 --- a/packages/react-native/React/Fabric/RCTScheduler.mm +++ b/packages/react-native/React/Fabric/RCTScheduler.mm @@ -26,13 +26,13 @@ class SchedulerDelegateProxy : public SchedulerDelegate { 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 53e274df365..b3c6340765f 100644 --- a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm +++ b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm @@ -292,12 +292,12 @@ using namespace facebook::react; #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 c6074ca1dfa..cac043ee3a6 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 28941791ee7..817c256c4d7 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 179f1e0ca65..4042a446ad9 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 3a674a4ef42..26312ce5934 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 a24d55eff83..2c97dedba3a 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 a260c5f1c29..dbb0fecfc92 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 f1c44381f45..0a685ede067 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 6a9e7f87cd7..d9cc6a3103d 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 a80f53afcc1..f5f37c91792 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 3977cbc2467..0fb2394f8e4 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 e29ed8f465a..1f84bd582c2 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 9020a8d406c..3d8d484efe7 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 a5526e176a3..404185818ac 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 be8da13aad3..c381d77e375 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 fd6c87d524f..a84845d9a03 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 4b196f4101c..46b78957705 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 0cd1fe194fb..ae6312baa09 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 {}; };