diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 7d123027..3f6bef81 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -2235,7 +2235,7 @@ static NSInteger incrementIfFound(NSInteger i) { ASDisplayNodeAssertMainThread(); if (!_pendingDisplayNodes) { - _pendingDisplayNodes = [[NSMutableSet alloc] init]; + _pendingDisplayNodes = [[ASWeakSet alloc] init]; } [_pendingDisplayNodes addObject:node]; diff --git a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h index 9e7579d3..4b86b20d 100644 --- a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h +++ b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h @@ -21,6 +21,7 @@ #import "ASLayoutTransition.h" #import "ASEnvironment.h" #import "ASObjectDescriptionHelpers.h" +#import "ASWeakSet.h" #import "ASDisplayNode+Beta.h" @@ -145,7 +146,7 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo CALayer *_placeholderLayer; // keeps track of nodes/subnodes that have not finished display, used with placeholders - NSMutableSet *_pendingDisplayNodes; + ASWeakSet *_pendingDisplayNodes; ASDisplayNodeContextModifier _willDisplayNodeContentWithRenderingContext; ASDisplayNodeContextModifier _didDisplayNodeContentWithRenderingContext;