diff --git a/AsyncDisplayKit.xcodeproj/project.pbxproj b/AsyncDisplayKit.xcodeproj/project.pbxproj index af1b4c1b61..a2899426b7 100644 --- a/AsyncDisplayKit.xcodeproj/project.pbxproj +++ b/AsyncDisplayKit.xcodeproj/project.pbxproj @@ -475,6 +475,7 @@ DE0702FC1C3671E900D7DE62 /* libAsyncDisplayKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 058D09AC195D04C000B7D73C /* libAsyncDisplayKit.a */; }; DE4843DC1C93EAC100A1F33B /* ASLayoutTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = E52405B41C8FEF16004DC8E7 /* ASLayoutTransition.h */; }; DE6EA3231C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */; }; + DE7EF4F81DFF77720082B84A /* ASDisplayNode+FrameworkSubclasses.h in Headers */ = {isa = PBXBuildFile; fileRef = DE7EF4F71DFF77720082B84A /* ASDisplayNode+FrameworkSubclasses.h */; }; DE84918D1C8FFF2B003D89E9 /* ASRunLoopQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 81EE384D1C8E94F000456208 /* ASRunLoopQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; DE84918E1C8FFF9F003D89E9 /* ASRunLoopQueue.mm in Sources */ = {isa = PBXBuildFile; fileRef = 81EE384E1C8E94F000456208 /* ASRunLoopQueue.mm */; }; DE89C1701DCEB9CC00D49D74 /* ASLayoutElementInspectorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = DE89C16A1DCEB9CC00D49D74 /* ASLayoutElementInspectorCell.h */; }; @@ -1177,6 +1178,7 @@ DBDB83921C6E879900D0098C /* ASPagerFlowLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASPagerFlowLayout.h; sourceTree = ""; }; DBDB83931C6E879900D0098C /* ASPagerFlowLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASPagerFlowLayout.m; sourceTree = ""; }; DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASDisplayNode+FrameworkPrivate.h"; sourceTree = ""; }; + DE7EF4F71DFF77720082B84A /* ASDisplayNode+FrameworkSubclasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASDisplayNode+FrameworkSubclasses.h"; sourceTree = ""; }; DE89C16A1DCEB9CC00D49D74 /* ASLayoutElementInspectorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASLayoutElementInspectorCell.h; sourceTree = ""; }; DE89C16B1DCEB9CC00D49D74 /* ASLayoutElementInspectorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASLayoutElementInspectorCell.m; sourceTree = ""; }; DE89C16C1DCEB9CC00D49D74 /* ASLayoutElementInspectorNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASLayoutElementInspectorNode.h; sourceTree = ""; }; @@ -1598,6 +1600,7 @@ 058D0A09195D050800B7D73C /* ASDisplayNode+DebugTiming.h */, 058D0A0A195D050800B7D73C /* ASDisplayNode+DebugTiming.mm */, DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */, + DE7EF4F71DFF77720082B84A /* ASDisplayNode+FrameworkSubclasses.h */, 058D0A0B195D050800B7D73C /* ASDisplayNode+UIViewBridge.mm */, 058D0A0C195D050800B7D73C /* ASDisplayNodeInternal.h */, 6959433D1D70815300B0EE1F /* ASDisplayNodeLayout.h */, @@ -1814,6 +1817,7 @@ 69F10C871C84C35D0026140C /* ASRangeControllerUpdateRangeProtocol+Beta.h in Headers */, B350623C1B010EFD0018CF92 /* _ASAsyncTransaction.h in Headers */, 9C70F20D1CDBE9CB007D6C76 /* ASDefaultPlayButton.h in Headers */, + DE7EF4F81DFF77720082B84A /* ASDisplayNode+FrameworkSubclasses.h in Headers */, 68355B411CB57A6C001D4E68 /* ASImageContainerProtocolCategories.h in Headers */, 7630FFA81C9E267E007A7C0E /* ASVideoNode.h in Headers */, B350623F1B010EFD0018CF92 /* _ASAsyncTransactionContainer.h in Headers */, diff --git a/AsyncDisplayKit/ASButtonNode.mm b/AsyncDisplayKit/ASButtonNode.mm index f260fd6a45..67d62e316e 100644 --- a/AsyncDisplayKit/ASButtonNode.mm +++ b/AsyncDisplayKit/ASButtonNode.mm @@ -11,15 +11,13 @@ #import "ASButtonNode.h" #import "ASStackLayoutSpec.h" #import "ASThread.h" -#import "ASDisplayNode+Subclasses.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASBackgroundLayoutSpec.h" #import "ASInsetLayoutSpec.h" #import "ASAbsoluteLayoutSpec.h" @interface ASButtonNode () { - ASDN::RecursiveMutex __instanceLock__; - NSAttributedString *_normalAttributedTitle; NSAttributedString *_highlightedAttributedTitle; NSAttributedString *_selectedAttributedTitle; diff --git a/AsyncDisplayKit/ASCellNode.mm b/AsyncDisplayKit/ASCellNode.mm index d99b2e2384..2faef39c01 100644 --- a/AsyncDisplayKit/ASCellNode.mm +++ b/AsyncDisplayKit/ASCellNode.mm @@ -12,7 +12,6 @@ #import "ASEqualityHelpers.h" #import "ASInternalHelpers.h" -#import "ASDisplayNodeInternal.h" #import "ASDisplayNode+FrameworkPrivate.h" #import "ASCollectionView+Undeprecated.h" #import "ASTableView+Undeprecated.h" diff --git a/AsyncDisplayKit/ASCollectionNode.mm b/AsyncDisplayKit/ASCollectionNode.mm index 368ed789a7..708307c755 100644 --- a/AsyncDisplayKit/ASCollectionNode.mm +++ b/AsyncDisplayKit/ASCollectionNode.mm @@ -13,8 +13,8 @@ #import "ASCollectionInternal.h" #import "ASCollectionViewLayoutFacilitatorProtocol.h" #import "ASCollectionNode.h" -#import "ASDisplayNodeInternal.h" #import "ASDisplayNode+Subclasses.h" +#import "ASDisplayNode+FrameworkPrivate.h" #import "ASEnvironmentInternal.h" #import "ASInternalHelpers.h" #import "ASCellNode+Internal.h" @@ -228,7 +228,7 @@ // and asserting here isn't an option – it is a common pattern for users to clear // the delegate/dataSource in dealloc, which may be running on a background thread. // It is important that we avoid retaining self in this block, so that this method is dealloc-safe. - ASCollectionView *view = (ASCollectionView *)_view; + ASCollectionView *view = self.view; ASPerformBlockOnMainThread(^{ view.asyncDelegate = delegate; }); @@ -254,7 +254,7 @@ // and asserting here isn't an option – it is a common pattern for users to clear // the delegate/dataSource in dealloc, which may be running on a background thread. // It is important that we avoid retaining self in this block, so that this method is dealloc-safe. - ASCollectionView *view = (ASCollectionView *)_view; + ASCollectionView *view = self.view; ASPerformBlockOnMainThread(^{ view.asyncDataSource = dataSource; }); diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index c9c652fc6a..f59c050aa4 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -9,8 +9,7 @@ // #import "ASDisplayNodeInternal.h" -#import "ASDisplayNode+Subclasses.h" -#import "ASDisplayNode+FrameworkPrivate.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASDisplayNode+Beta.h" #import "AsyncDisplayKit+Debug.h" diff --git a/AsyncDisplayKit/ASImageNode.mm b/AsyncDisplayKit/ASImageNode.mm index 2678a7e8a9..4604d906fd 100644 --- a/AsyncDisplayKit/ASImageNode.mm +++ b/AsyncDisplayKit/ASImageNode.mm @@ -15,22 +15,22 @@ #import "_ASDisplayLayer.h" #import "ASAssert.h" #import "ASDimension.h" -#import "ASDisplayNode+Subclasses.h" -#import "ASDisplayNodeInternal.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASDisplayNodeExtras.h" #import "ASDisplayNode+Beta.h" #import "ASLayout.h" #import "ASTextNode.h" #import "ASImageNode+AnimatedImagePrivate.h" - #import "ASImageNode+CGExtras.h" #import "AsyncDisplayKit+Debug.h" - #import "ASInternalHelpers.h" #import "ASEqualityHelpers.h" #import "ASEqualityHashHelpers.h" #import "ASWeakMap.h" +// TODO: It would be nice to remove this dependency; it's the only subclass using more than +FrameworkSubclasses.h +#import "ASDisplayNodeInternal.h" + #include struct ASImageNodeDrawParameters { @@ -244,7 +244,7 @@ struct ASImageNodeDrawParameters { _drawParameter = { .bounds = self.bounds, .opaque = self.opaque, - .contentsScale = _contentsScaleForDisplay, + .contentsScale = self.contentsScaleForDisplay, .backgroundColor = self.backgroundColor, .contentMode = self.contentMode, .cropEnabled = _cropEnabled, diff --git a/AsyncDisplayKit/ASMapNode.mm b/AsyncDisplayKit/ASMapNode.mm index 111f52488d..197d62cfd9 100644 --- a/AsyncDisplayKit/ASMapNode.mm +++ b/AsyncDisplayKit/ASMapNode.mm @@ -13,8 +13,7 @@ #import -#import "ASDisplayNodeInternal.h" -#import "ASDisplayNode+Subclasses.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASDisplayNodeExtras.h" #import "ASInsetLayoutSpec.h" #import "ASInternalHelpers.h" diff --git a/AsyncDisplayKit/ASMultiplexImageNode.mm b/AsyncDisplayKit/ASMultiplexImageNode.mm index 4275516078..be1ca511ed 100644 --- a/AsyncDisplayKit/ASMultiplexImageNode.mm +++ b/AsyncDisplayKit/ASMultiplexImageNode.mm @@ -14,8 +14,7 @@ #import #import "ASAvailability.h" -#import "ASDisplayNode+Subclasses.h" -#import "ASDisplayNode+FrameworkPrivate.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASDisplayNodeExtras.h" #import "ASLog.h" #import "ASPhotosFrameworkImageRequest.h" @@ -84,7 +83,6 @@ typedef void(^ASMultiplexImageLoadCompletionBlock)(UIImage *image, id imageIdent id _downloadIdentifier; // Properties - ASDN::RecursiveMutex __instanceLock__; BOOL _shouldRenderProgressImages; //set on init only diff --git a/AsyncDisplayKit/ASNetworkImageNode.mm b/AsyncDisplayKit/ASNetworkImageNode.mm index 87ab85031b..f60dee93eb 100755 --- a/AsyncDisplayKit/ASNetworkImageNode.mm +++ b/AsyncDisplayKit/ASNetworkImageNode.mm @@ -11,10 +11,8 @@ #import "ASNetworkImageNode.h" #import "ASBasicImageDownloader.h" -#import "ASDisplayNodeInternal.h" #import "ASDisplayNodeExtras.h" -#import "ASDisplayNode+Subclasses.h" -#import "ASDisplayNode+FrameworkPrivate.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASEqualityHelpers.h" #import "ASInternalHelpers.h" #import "ASImageContainerProtocolCategories.h" diff --git a/AsyncDisplayKit/ASTableNode.mm b/AsyncDisplayKit/ASTableNode.mm index 3b9f1487f1..1101847bf5 100644 --- a/AsyncDisplayKit/ASTableNode.mm +++ b/AsyncDisplayKit/ASTableNode.mm @@ -13,8 +13,8 @@ #import "ASTableNode.h" #import "ASTableViewInternal.h" #import "ASEnvironmentInternal.h" -#import "ASDisplayNodeInternal.h" #import "ASDisplayNode+Subclasses.h" +#import "ASDisplayNode+FrameworkPrivate.h" #import "ASInternalHelpers.h" #import "ASCellNode+Internal.h" #import "AsyncDisplayKit+Debug.h" @@ -197,7 +197,7 @@ // and asserting here isn't an option – it is a common pattern for users to clear // the delegate/dataSource in dealloc, which may be running on a background thread. // It is important that we avoid retaining self in this block, so that this method is dealloc-safe. - ASTableView *view = (ASTableView *)_view; + ASTableView *view = self.view; ASPerformBlockOnMainThread(^{ view.asyncDelegate = delegate; }); @@ -224,7 +224,7 @@ // and asserting here isn't an option – it is a common pattern for users to clear // the delegate/dataSource in dealloc, which may be running on a background thread. // It is important that we avoid retaining self in this block, so that this method is dealloc-safe. - ASTableView *view = (ASTableView *)_view; + ASTableView *view = self.view; ASPerformBlockOnMainThread(^{ view.asyncDataSource = dataSource; }); diff --git a/AsyncDisplayKit/ASTextNode.mm b/AsyncDisplayKit/ASTextNode.mm index 07079628e4..317ce2a2fd 100644 --- a/AsyncDisplayKit/ASTextNode.mm +++ b/AsyncDisplayKit/ASTextNode.mm @@ -15,8 +15,7 @@ #import #import "_ASDisplayLayer.h" -#import "ASDisplayNode+Subclasses.h" -#import "ASDisplayNodeInternal.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASHighlightOverlayLayer.h" #import "ASDisplayNodeExtras.h" diff --git a/AsyncDisplayKit/ASVideoNode.mm b/AsyncDisplayKit/ASVideoNode.mm index afd133a683..b83fc2be17 100644 --- a/AsyncDisplayKit/ASVideoNode.mm +++ b/AsyncDisplayKit/ASVideoNode.mm @@ -9,9 +9,7 @@ // #if TARGET_OS_IOS #import -#import "ASDisplayNodeInternal.h" -#import "ASDisplayNode+Subclasses.h" -#import "ASDisplayNode+FrameworkPrivate.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASVideoNode.h" #import "ASEqualityHelpers.h" #import "ASInternalHelpers.h" diff --git a/AsyncDisplayKit/ASVideoPlayerNode.mm b/AsyncDisplayKit/ASVideoPlayerNode.mm index 5c26ddec3e..bebf528ed0 100644 --- a/AsyncDisplayKit/ASVideoPlayerNode.mm +++ b/AsyncDisplayKit/ASVideoPlayerNode.mm @@ -12,7 +12,7 @@ #import "ASVideoPlayerNode.h" #import "ASDefaultPlaybackButton.h" -#import "ASDisplayNodeInternal.h" +#import "ASDisplayNode+FrameworkSubclasses.h" static void *ASVideoPlayerNodeContext = &ASVideoPlayerNodeContext; diff --git a/AsyncDisplayKit/ASViewController.mm b/AsyncDisplayKit/ASViewController.mm index 4cf58d166e..c5f0d68fb3 100644 --- a/AsyncDisplayKit/ASViewController.mm +++ b/AsyncDisplayKit/ASViewController.mm @@ -13,7 +13,6 @@ #import "ASViewController.h" #import "ASAssert.h" #import "ASAvailability.h" -#import "ASDisplayNodeInternal.h" #import "ASDisplayNode+FrameworkPrivate.h" #import "ASLayout.h" #import "ASTraitCollection.h" diff --git a/AsyncDisplayKit/Details/ASRangeController.mm b/AsyncDisplayKit/Details/ASRangeController.mm index 7c7febdfa0..7c9656a00c 100644 --- a/AsyncDisplayKit/Details/ASRangeController.mm +++ b/AsyncDisplayKit/Details/ASRangeController.mm @@ -13,8 +13,7 @@ #import "ASAssert.h" #import "ASCellNode.h" #import "ASDisplayNodeExtras.h" -#import "ASDisplayNodeInternal.h" -#import "ASMultidimensionalArrayUtils.h" +#import "ASDisplayNodeInternal.h" // Required for interfaceState and hierarchyState setter methods. #import "ASInternalHelpers.h" #import "ASMultiDimensionalArrayUtils.h" #import "ASWeakSet.h" diff --git a/AsyncDisplayKit/Layout/ASLayout.h b/AsyncDisplayKit/Layout/ASLayout.h index 76389398f7..3b8f9d6365 100644 --- a/AsyncDisplayKit/Layout/ASLayout.h +++ b/AsyncDisplayKit/Layout/ASLayout.h @@ -82,9 +82,9 @@ ASDISPLAYNODE_EXTERN_C_END * Designated initializer */ - (instancetype)initWithLayoutElement:(id)layoutElement - size:(CGSize)size - position:(CGPoint)position - sublayouts:(nullable NSArray *)sublayouts NS_DESIGNATED_INITIALIZER; + size:(CGSize)size + position:(CGPoint)position + sublayouts:(nullable NSArray *)sublayouts NS_DESIGNATED_INITIALIZER; /** * Convenience class initializer for layout construction. diff --git a/AsyncDisplayKit/Layout/ASLayoutElement.mm b/AsyncDisplayKit/Layout/ASLayoutElement.mm index 8a89a0212a..8c597c0854 100644 --- a/AsyncDisplayKit/Layout/ASLayoutElement.mm +++ b/AsyncDisplayKit/Layout/ASLayoutElement.mm @@ -10,7 +10,7 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASDisplayNodeInternal.h" +#import "ASDisplayNode+FrameworkPrivate.h" #import #import diff --git a/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm b/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm index 56a7a6d76c..156a5c9ad1 100644 --- a/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm @@ -20,9 +20,6 @@ #import "ASThread.h" @implementation ASStackLayoutSpec -{ - ASDN::RecursiveMutex __instanceLock__; -} - (instancetype)init { diff --git a/AsyncDisplayKit/Private/ASDisplayNode+AsyncDisplay.mm b/AsyncDisplayKit/Private/ASDisplayNode+AsyncDisplay.mm index 484b6b76a9..6c5e48a4c9 100644 --- a/AsyncDisplayKit/Private/ASDisplayNode+AsyncDisplay.mm +++ b/AsyncDisplayKit/Private/ASDisplayNode+AsyncDisplay.mm @@ -13,7 +13,7 @@ #import "_ASDisplayLayer.h" #import "ASAssert.h" #import "ASDisplayNodeInternal.h" -#import "ASDisplayNode+FrameworkPrivate.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASInternalHelpers.h" @interface ASDisplayNode () <_ASDisplayLayerDelegate> diff --git a/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h b/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h index 764f427543..7d72be2423 100644 --- a/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h +++ b/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h @@ -15,6 +15,7 @@ #import "ASDisplayNode.h" #import "ASThread.h" +#import "ASObjectDescriptionHelpers.h" NS_ASSUME_NONNULL_BEGIN @@ -95,7 +96,7 @@ __unused static NSString * _Nonnull NSStringFromASHierarchyState(ASHierarchyStat return [NSString stringWithFormat:@"{ %@ }", [states componentsJoinedByString:@" | "]]; } -@interface ASDisplayNode () +@interface ASDisplayNode () { @protected ASInterfaceState _interfaceState; @@ -105,6 +106,9 @@ __unused static NSString * _Nonnull NSStringFromASHierarchyState(ASHierarchyStat // The view class to use when creating a new display node instance. Defaults to _ASDisplayView. + (Class)viewClass; +// Thread safe way to access the bounds of the node +@property (nonatomic, assign) CGRect threadSafeBounds; + // These methods are recursive, and either union or remove the provided interfaceState to all sub-elements. - (void)enterInterfaceState:(ASInterfaceState)interfaceState; - (void)exitInterfaceState:(ASInterfaceState)interfaceState; diff --git a/AsyncDisplayKit/Private/ASDisplayNode+FrameworkSubclasses.h b/AsyncDisplayKit/Private/ASDisplayNode+FrameworkSubclasses.h new file mode 100644 index 0000000000..bfd4022d29 --- /dev/null +++ b/AsyncDisplayKit/Private/ASDisplayNode+FrameworkSubclasses.h @@ -0,0 +1,33 @@ +// +// ASDisplayNode+FrameworkPrivate.h +// AsyncDisplayKit +// +// Copyright (c) 2014-present, Facebook, Inc. All rights reserved. +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. An additional grant +// of patent rights can be found in the PATENTS file in the same directory. +// + +// +// The following methods are ONLY for use by _ASDisplayLayer, _ASDisplayView, and ASDisplayNode. +// These methods must never be called or overridden by other classes. +// + +#import "ASDisplayNode.h" +#import "ASThread.h" + +// These are included because most internal subclasses need it. +#import "ASDisplayNode+Subclasses.h" +#import "ASDisplayNode+FrameworkPrivate.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ASDisplayNode () +{ + // Protects access to _view, _layer, _pendingViewState, _subnodes, _supernode, and other properties which are accessed from multiple threads. + @package + ASDN::RecursiveMutex __instanceLock__; +} +@end + +NS_ASSUME_NONNULL_END diff --git a/AsyncDisplayKit/Private/ASDisplayNode+UIViewBridge.mm b/AsyncDisplayKit/Private/ASDisplayNode+UIViewBridge.mm index f4e67b7f9a..024b49feff 100644 --- a/AsyncDisplayKit/Private/ASDisplayNode+UIViewBridge.mm +++ b/AsyncDisplayKit/Private/ASDisplayNode+UIViewBridge.mm @@ -14,6 +14,7 @@ #import "ASDisplayNodeInternal.h" #import "ASDisplayNode+Subclasses.h" #import "ASDisplayNode+FrameworkPrivate.h" +#import "ASDisplayNode+FrameworkSubclasses.h" #import "ASPendingStateController.h" /** diff --git a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h index e10392dd8d..e7a84833e9 100644 --- a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h +++ b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h @@ -20,7 +20,6 @@ #import "ASLayoutElement.h" #import "ASLayoutTransition.h" #import "ASEnvironment.h" -#import "ASObjectDescriptionHelpers.h" #import "ASWeakSet.h" #import "ASDisplayNode+Beta.h" @@ -57,13 +56,11 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo #define TIME_DISPLAYNODE_OPS 0 // If you're using this information frequently, try: (DEBUG || PROFILE) -@interface ASDisplayNode () +@interface ASDisplayNode () { @package _ASPendingState *_pendingViewState; - // Protects access to _view, _layer, _pendingViewState, _subnodes, _supernode, and other properties which are accessed from multiple threads. - ASDN::RecursiveMutex __instanceLock__; UIView *_view; CALayer *_layer; @@ -197,10 +194,6 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo /// Bitmask to check which methods an object overrides. @property (nonatomic, assign, readonly) ASDisplayNodeMethodOverrides methodOverrides; -/// Thread safe way to access the bounds of the node -@property (nonatomic, assign) CGRect threadSafeBounds; - - // Swizzle to extend the builtin functionality with custom logic - (BOOL)__shouldLoadViewOrLayer; diff --git a/AsyncDisplayKit/Private/ASLayoutTransition.mm b/AsyncDisplayKit/Private/ASLayoutTransition.mm index e22601f6ea..35dfc5c4e6 100644 --- a/AsyncDisplayKit/Private/ASLayoutTransition.mm +++ b/AsyncDisplayKit/Private/ASLayoutTransition.mm @@ -11,9 +11,11 @@ // #import "ASLayoutTransition.h" - -#import "ASDisplayNodeInternal.h" #import "ASLayout.h" +#import "ASThread.h" +#import "ASDisplayNode+Beta.h" + +#import "ASDisplayNodeInternal.h" // Required for _insertSubnode... / _removeFromSupernode. #import #import diff --git a/AsyncDisplayKit/Private/ASPendingStateController.mm b/AsyncDisplayKit/Private/ASPendingStateController.mm index e02e1e5ee0..19c6d987fe 100644 --- a/AsyncDisplayKit/Private/ASPendingStateController.mm +++ b/AsyncDisplayKit/Private/ASPendingStateController.mm @@ -13,7 +13,7 @@ #import "ASPendingStateController.h" #import "ASThread.h" #import "ASWeakSet.h" -#import "ASDisplayNodeInternal.h" +#import "ASDisplayNodeInternal.h" // Required for -applyPendingViewState; consider moving this to +FrameworkPrivate @interface ASPendingStateController() {