diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 8223d5208e..54891897dd 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -560,10 +560,16 @@ static BOOL _isInterceptedSelector(SEL sel) if (ASScrollDirectionContainsHorizontalDirection([self scrollableDirections])) { constrainedSize.min.width = MAX(0, constrainedSize.min.width - sectionInset.left - sectionInset.right); - constrainedSize.max.width = MAX(0, constrainedSize.max.width - sectionInset.left - sectionInset.right); + //ignore insets for FLT_MAX so FLT_MAX can be compared against + if (constrainedSize.max.width - FLT_EPSILON < FLT_MAX) { + constrainedSize.max.width = MAX(0, constrainedSize.max.width - sectionInset.left - sectionInset.right); + } } else { constrainedSize.min.height = MAX(0, constrainedSize.min.height - sectionInset.top - sectionInset.bottom); - constrainedSize.max.height = MAX(0, constrainedSize.max.height - sectionInset.top - sectionInset.bottom); + //ignore insets for FLT_MAX so FLT_MAX can be compared against + if (constrainedSize.max.height - FLT_EPSILON < FLT_MAX) { + constrainedSize.max.height = MAX(0, constrainedSize.max.height - sectionInset.top - sectionInset.bottom); + } } return constrainedSize; diff --git a/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm b/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm index daf0971e56..1610ab0db3 100644 --- a/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm @@ -74,14 +74,14 @@ [sublayouts addObject:sublayout]; } - if (isnan(size.width)) { + if (isnan(size.width) || size.width >= FLT_MAX - FLT_EPSILON) { size.width = constrainedSize.min.width; for (ASLayout *sublayout in sublayouts) { size.width = MAX(size.width, sublayout.position.x + sublayout.size.width); } } - if (isnan(size.height)) { + if (isnan(size.height) || size.height >= FLT_MAX - FLT_EPSILON) { size.height = constrainedSize.min.height; for (ASLayout *sublayout in sublayouts) { size.height = MAX(size.height, sublayout.position.y + sublayout.size.height);