diff --git a/React/Fabric/Mounting/RCTMountingManager.h b/React/Fabric/Mounting/RCTMountingManager.h index 0f65e3981..21e3a8c19 100644 --- a/React/Fabric/Mounting/RCTMountingManager.h +++ b/React/Fabric/Mounting/RCTMountingManager.h @@ -26,8 +26,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, strong) RCTComponentViewRegistry *componentViewRegistry; /** - * Transfroms mutation insturctions to mount items and execute them. - * The order of mutation tnstructions matters. + * Transfroms mutation instructions to mount items and executes them. + * The order of mutation instructions matters. * Can be called from any thread. */ - (void)performTransactionWithMutations:(facebook::react::ShadowViewMutationList)mutations rootTag:(ReactTag)rootTag; diff --git a/React/Fabric/RCTSurfacePresenter.mm b/React/Fabric/RCTSurfacePresenter.mm index 711a1f291..1a2ab70ab 100644 --- a/React/Fabric/RCTSurfacePresenter.mm +++ b/React/Fabric/RCTSurfacePresenter.mm @@ -283,16 +283,20 @@ using namespace facebook::react; - (void)_startAllSurfaces { - for (RCTFabricSurface *surface in _surfaceRegistry.enumerator) { - [self _startSurface:surface]; - } + [_surfaceRegistry enumerateWithBlock:^(NSEnumerator *enumerator) { + for (RCTFabricSurface *surface in enumerator) { + [self _startSurface:surface]; + } + }]; } - (void)_stopAllSurfaces { - for (RCTFabricSurface *surface in _surfaceRegistry.enumerator) { - [self _stopSurface:surface]; - } + [_surfaceRegistry enumerateWithBlock:^(NSEnumerator *enumerator) { + for (RCTFabricSurface *surface in enumerator) { + [self _stopSurface:surface]; + } + }]; } #pragma mark - RCTSchedulerDelegate diff --git a/React/Fabric/RCTSurfaceRegistry.h b/React/Fabric/RCTSurfaceRegistry.h index d7a3e755c..06be8d5d5 100644 --- a/React/Fabric/RCTSurfaceRegistry.h +++ b/React/Fabric/RCTSurfaceRegistry.h @@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN @class RCTFabricSurface; +typedef void(^RCTSurfaceEnumeratorBlock)(NSEnumerator *enumerator); + /** * Registry of Surfaces. * Incapsulates storing Surface objects and quering them by root tag. @@ -21,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface RCTSurfaceRegistry : NSObject -- (NSEnumerator *)enumerator; +- (void)enumerateWithBlock:(RCTSurfaceEnumeratorBlock)block; /** * Adds Surface object into the registry. diff --git a/React/Fabric/RCTSurfaceRegistry.mm b/React/Fabric/RCTSurfaceRegistry.mm index 727b4d0e8..76bbf8f86 100644 --- a/React/Fabric/RCTSurfaceRegistry.mm +++ b/React/Fabric/RCTSurfaceRegistry.mm @@ -26,11 +26,10 @@ return self; } -- (NSEnumerator *)enumerator +- (void)enumerateWithBlock:(RCTSurfaceEnumeratorBlock)block { std::lock_guard lock(_mutex); - - return [_registry objectEnumerator]; + block([_registry objectEnumerator]); } - (void)registerSurface:(RCTFabricSurface *)surface