From f1f45c61a8980eee2f935c62d0d23161554cf4d0 Mon Sep 17 00:00:00 2001 From: Levi McCallum Date: Wed, 8 Jun 2016 14:51:20 -0700 Subject: [PATCH] Copy dequeued context --- AsyncDisplayKit/Layout/ASLayout.mm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/AsyncDisplayKit/Layout/ASLayout.mm b/AsyncDisplayKit/Layout/ASLayout.mm index 38d8e0fc61..d715e45a48 100644 --- a/AsyncDisplayKit/Layout/ASLayout.mm +++ b/AsyncDisplayKit/Layout/ASLayout.mm @@ -122,22 +122,21 @@ extern BOOL CGPointIsNull(CGPoint point) queue.push({self, CGPointMake(0, 0), NO}); while (!queue.empty()) { - Context &context = queue.front(); - ASLayout *layout = context.layout; + Context context = queue.front(); queue.pop(); - if (predicateBlock(layout)) { - [flattenedSublayouts addObject:[ASLayout layoutWithLayoutableObject:layout.layoutableObject - constrainedSizeRange:layout.constrainedSizeRange - size:layout.size + if (predicateBlock(context.layout)) { + [flattenedSublayouts addObject:[ASLayout layoutWithLayoutableObject:context.layout.layoutableObject + constrainedSizeRange:context.layout.constrainedSizeRange + size:context.layout.size position:context.relativePosition sublayouts:nil flattened:context.flattened]]; } - for (ASLayout *sublayout in layout.sublayouts) { + for (ASLayout *sublayout in context.layout.sublayouts) { // Mark layout trees that have already been flattened for future identification of immediate sublayouts - BOOL flattened = context.flattened ? : layout.flattened; + BOOL flattened = context.flattened ? : context.layout.flattened; queue.push({sublayout, context.relativePosition + sublayout.position, flattened}); } }