Skip to content

Commit e498969

Browse files
maickihebertialmeida
authored andcommitted
Cleanup Yoga Categories (TextureGroup#1364)
1 parent 954382d commit e498969

File tree

3 files changed

+41
-33
lines changed

3 files changed

+41
-33
lines changed

Source/ASDisplayNode+Layout.mm

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,10 +1046,7 @@ - (void)_locked_setCalculatedDisplayNodeLayout:(const ASDisplayNodeLayout &)disp
10461046
#pragma mark -
10471047
#pragma mark - ASDisplayNode (YogaLayout)
10481048

1049-
@implementation ASDisplayNode (YogaInternal)
1050-
1051-
#pragma mark -
1052-
#pragma mark - ASDisplayNode (Yoga)
1049+
@implementation ASDisplayNode (YogaLayout)
10531050

10541051
- (BOOL)locked_shouldLayoutFromYogaRoot {
10551052
#if YOGA
@@ -1071,32 +1068,4 @@ - (BOOL)locked_shouldLayoutFromYogaRoot {
10711068
#endif
10721069
}
10731070

1074-
- (ASLockSet)lockToRootIfNeededForLayout {
1075-
ASLockSet lockSet = ASLockSequence(^BOOL(ASAddLockBlock addLock) {
1076-
if (!addLock(self)) {
1077-
return NO;
1078-
}
1079-
#if YOGA
1080-
if (![self locked_shouldLayoutFromYogaRoot]) {
1081-
return YES;
1082-
}
1083-
if (self.nodeController && !addLock(self.nodeController)) {
1084-
return NO;
1085-
}
1086-
ASDisplayNode *parent = _supernode;
1087-
while (parent) {
1088-
if (!addLock(parent)) {
1089-
return NO;
1090-
}
1091-
if (parent.nodeController && !addLock(parent.nodeController)) {
1092-
return NO;
1093-
}
1094-
parent = parent->_supernode;
1095-
}
1096-
#endif
1097-
return true;
1098-
});
1099-
return lockSet;
1100-
}
1101-
11021071
@end

Source/ASDisplayNode+Yoga.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ AS_EXTERN void ASDisplayNodePerformBlockOnEveryYogaChild(ASDisplayNode * _Nullab
3333
// Will walk up the Yoga tree and returns the root node
3434
- (ASDisplayNode *)yogaRoot;
3535

36+
37+
@end
38+
39+
@interface ASDisplayNode (YogaLocking)
3640
/**
3741
* @discussion Attempts(spinning) to lock all node up to root node when yoga is enabled.
3842
* This will lock self when yoga is not enabled;

Source/ASDisplayNode+Yoga.mm

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@
2020
#import <AsyncDisplayKit/ASDisplayNodeInternal.h>
2121
#import <AsyncDisplayKit/ASLayout.h>
2222
#import <AsyncDisplayKit/ASLayoutElementStylePrivate.h>
23+
#import <AsyncDisplayKit/ASNodeController+Beta.h>
2324

2425
#import <AsyncDisplayKit/ASDisplayNode+LayoutSpec.h>
2526

2627
#define YOGA_LAYOUT_LOGGING 0
2728

2829
#pragma mark - ASDisplayNode+Yoga
2930

30-
@interface ASDisplayNode (YogaInternal)
31+
@interface ASDisplayNode (YogaPrivate)
3132
@property (nonatomic, weak) ASDisplayNode *yogaParent;
3233
- (ASSizeRange)_locked_constrainedSizeForLayoutPass;
3334
@end
@@ -409,6 +410,40 @@ - (void)calculateLayoutFromYogaRoot:(ASSizeRange)rootConstrainedSize
409410

410411
@end
411412

413+
#pragma mark - ASDisplayNode (YogaLocking)
414+
415+
@implementation ASDisplayNode (YogaLocking)
416+
417+
- (ASLockSet)lockToRootIfNeededForLayout {
418+
ASLockSet lockSet = ASLockSequence(^BOOL(ASAddLockBlock addLock) {
419+
if (!addLock(self)) {
420+
return NO;
421+
}
422+
#if YOGA
423+
if (![self locked_shouldLayoutFromYogaRoot]) {
424+
return YES;
425+
}
426+
if (self.nodeController && !addLock(self.nodeController)) {
427+
return NO;
428+
}
429+
ASDisplayNode *parent = _supernode;
430+
while (parent) {
431+
if (!addLock(parent)) {
432+
return NO;
433+
}
434+
if (parent.nodeController && !addLock(parent.nodeController)) {
435+
return NO;
436+
}
437+
parent = parent->_supernode;
438+
}
439+
#endif
440+
return true;
441+
});
442+
return lockSet;
443+
}
444+
445+
@end
446+
412447
@implementation ASDisplayNode (YogaDebugging)
413448

414449
- (NSString *)yogaTreeDescription {

0 commit comments

Comments
 (0)