File tree Expand file tree Collapse file tree
java/com/facebook/react/fabric Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -101,7 +101,7 @@ - (instancetype)initWithContextContainer:(std::shared_ptr<const ContextContainer
101101 _mountingManager.contextContainer = contextContainer;
102102 _mountingManager.delegate = self;
103103
104- if (ReactNativeFeatureFlags::enableFabricCommitBranching ()) {
104+ if (ReactNativeFeatureFlags::enableFabricCommitBranchingMergeOnMainThread ()) {
105105 _mergeRunLoopObserverDelegate = std::make_shared<ReactRevisionMergeRunLoopObserverDelegate>(self);
106106 _mergeRunLoopObserver = std::make_unique<const MainRunLoopObserver>(
107107 RunLoopObserver::Activity::BeforeWaiting, _mergeRunLoopObserverDelegate);
@@ -350,7 +350,7 @@ - (void)schedulerShouldRenderTransactions:(std::shared_ptr<const MountingCoordin
350350
351351- (void )schedulerShouldMergeReactRevision : (SurfaceId)surfaceId
352352{
353- if (RCTIsMainQueue ()) {
353+ if (RCTIsMainQueue () || ! ReactNativeFeatureFlags::enableFabricCommitBranchingMergeOnMainThread () ) {
354354 [self _mergeReactRevisionForSurfaceId: surfaceId];
355355 return ;
356356 }
@@ -369,7 +369,6 @@ - (void)schedulerShouldMergeReactRevision:(SurfaceId)surfaceId
369369
370370- (void )_mergeReactRevisionForSurfaceId : (SurfaceId)surfaceId
371371{
372- RCTAssertMainQueue ();
373372 RCTScheduler *scheduler = [self scheduler ];
374373 if (!scheduler) {
375374 return ;
Original file line number Diff line number Diff line change @@ -1628,7 +1628,7 @@ public void doFrameGuarded(long frameTimeNanos) {
16281628
16291629 // Drain pending React revision merges first so that animations,
16301630 // preallocation, and mount items operate against the latest revision.
1631- if (ReactNativeFeatureFlags .enableFabricCommitBranching ()) {
1631+ if (ReactNativeFeatureFlags .enableFabricCommitBranchingMergeOnMainThread ()) {
16321632 FabricUIManagerBinding binding = mBinding ;
16331633 if (binding != null ) {
16341634 Integer mergeSurfaceId ;
Original file line number Diff line number Diff line change @@ -767,17 +767,24 @@ void FabricUIManagerBinding::schedulerShouldRenderTransactions(
767767
768768void FabricUIManagerBinding::schedulerShouldMergeReactRevision (
769769 SurfaceId surfaceId) {
770- std::shared_lock lock (installMutex_);
771- auto mountingManager =
772- getMountingManager (" schedulerShouldMergeReactRevision" );
773- if (mountingManager) {
774- mountingManager->scheduleReactRevisionMerge (surfaceId);
770+ if (ReactNativeFeatureFlags::enableFabricCommitBranchingMergeOnMainThread ()) {
771+ auto mountingManager =
772+ getMountingManager (" schedulerShouldMergeReactRevision" );
773+ if (mountingManager) {
774+ mountingManager->scheduleReactRevisionMerge (surfaceId);
775+ }
776+ } else {
777+ mergeReactRevision (surfaceId);
775778 }
776779}
777780
778781void FabricUIManagerBinding::mergeReactRevision (SurfaceId surfaceId) {
779- std::shared_lock lock (installMutex_);
780- scheduler_->getUIManager ()->getShadowTreeRegistry ().visit (
782+ auto scheduler = getScheduler ();
783+ if (!scheduler) {
784+ return ;
785+ }
786+
787+ scheduler->getUIManager ()->getShadowTreeRegistry ().visit (
781788 surfaceId,
782789 [](const ShadowTree& shadowTree) { shadowTree.mergeReactRevision (); });
783790}
You can’t perform that action at this time.
0 commit comments