mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
[ASDisplayNode] Add Event Tracing to Help Debugging (#2243)
* Add some simple event logging for ASDisplayNode Improve the tracing * Add header to copy files phase * Make event header public
This commit is contained in:
@@ -50,16 +50,47 @@ typedef NS_OPTIONS(NSUInteger, ASHierarchyState)
|
||||
ASHierarchyStateLayoutPending = 1 << 3
|
||||
};
|
||||
|
||||
inline BOOL ASHierarchyStateIncludesLayoutPending(ASHierarchyState hierarchyState)
|
||||
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesLayoutPending(ASHierarchyState hierarchyState)
|
||||
{
|
||||
return ((hierarchyState & ASHierarchyStateLayoutPending) == ASHierarchyStateLayoutPending);
|
||||
}
|
||||
|
||||
inline BOOL ASHierarchyStateIncludesRangeManaged(ASHierarchyState hierarchyState)
|
||||
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesRangeManaged(ASHierarchyState hierarchyState)
|
||||
{
|
||||
return ((hierarchyState & ASHierarchyStateRangeManaged) == ASHierarchyStateRangeManaged);
|
||||
}
|
||||
|
||||
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesRasterized(ASHierarchyState hierarchyState)
|
||||
{
|
||||
return ((hierarchyState & ASHierarchyStateRasterized) == ASHierarchyStateRasterized);
|
||||
}
|
||||
|
||||
ASDISPLAYNODE_INLINE BOOL ASHierarchyStateIncludesTransitioningSupernodes(ASHierarchyState hierarchyState)
|
||||
{
|
||||
return ((hierarchyState & ASHierarchyStateTransitioningSupernodes) == ASHierarchyStateTransitioningSupernodes);
|
||||
}
|
||||
|
||||
__unused static NSString * _Nonnull NSStringFromASHierarchyState(ASHierarchyState hierarchyState)
|
||||
{
|
||||
NSMutableArray *states = [NSMutableArray array];
|
||||
if (hierarchyState == ASHierarchyStateNormal) {
|
||||
[states addObject:@"Normal"];
|
||||
}
|
||||
if (ASHierarchyStateIncludesRangeManaged(hierarchyState)) {
|
||||
[states addObject:@"RangeManaged"];
|
||||
}
|
||||
if (ASHierarchyStateIncludesLayoutPending(hierarchyState)) {
|
||||
[states addObject:@"LayoutPending"];
|
||||
}
|
||||
if (ASHierarchyStateIncludesRasterized(hierarchyState)) {
|
||||
[states addObject:@"Rasterized"];
|
||||
}
|
||||
if (ASHierarchyStateIncludesTransitioningSupernodes(hierarchyState)) {
|
||||
[states addObject:@"TransitioningSupernodes"];
|
||||
}
|
||||
return [NSString stringWithFormat:@"{ %@ }", [states componentsJoinedByString:@" | "]];
|
||||
}
|
||||
|
||||
@interface ASDisplayNode ()
|
||||
{
|
||||
@protected
|
||||
|
||||
Reference in New Issue
Block a user