From 2a859eb7e37d0213845707ea49e50fe5fd7f74e0 Mon Sep 17 00:00:00 2001 From: Emil Sjolander Date: Fri, 26 Aug 2016 03:09:26 -0700 Subject: [PATCH] Revert changes causing layout failures Differential Revision: D3776987 fbshipit-source-id: 06bd154a36f895782f45511cd8cf49cc6d7cbe7d --- React/CSSLayout/CSSLayout.c | 3 ++- .../src/main/java/com/facebook/csslayout/LayoutEngine.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/React/CSSLayout/CSSLayout.c b/React/CSSLayout/CSSLayout.c index d49acc02e..c8fb96734 100644 --- a/React/CSSLayout/CSSLayout.c +++ b/React/CSSLayout/CSSLayout.c @@ -1040,7 +1040,8 @@ static void layoutNodeImpl(const CSSNodeRef node, child->layout.computedFlexBasis = fmaxf(child->style.dimensions[CSSDimensionHeight], getPaddingAndBorderAxis(child, CSSFlexDirectionColumn)); - } else if (!CSSValueIsUndefined(child->style.flexBasis)) { + } else if (!CSSValueIsUndefined(child->style.flexBasis) && + !CSSValueIsUndefined(availableInnerMainDim)) { child->layout.computedFlexBasis = fmaxf(child->style.flexBasis, getPaddingAndBorderAxis(child, mainAxis)); } else { diff --git a/ReactAndroid/src/main/java/com/facebook/csslayout/LayoutEngine.java b/ReactAndroid/src/main/java/com/facebook/csslayout/LayoutEngine.java index e7108f08e..f704879af 100644 --- a/ReactAndroid/src/main/java/com/facebook/csslayout/LayoutEngine.java +++ b/ReactAndroid/src/main/java/com/facebook/csslayout/LayoutEngine.java @@ -694,7 +694,7 @@ public class LayoutEngine { // The height is definite, so use that as the flex basis. child.layout.computedFlexBasis = Math.max(child.style.dimensions[DIMENSION_HEIGHT], ((child.style.padding.getWithFallback(leadingSpacing[CSS_FLEX_DIRECTION_COLUMN], leading[CSS_FLEX_DIRECTION_COLUMN]) + child.style.border.getWithFallback(leadingSpacing[CSS_FLEX_DIRECTION_COLUMN], leading[CSS_FLEX_DIRECTION_COLUMN])) + (child.style.padding.getWithFallback(trailingSpacing[CSS_FLEX_DIRECTION_COLUMN], trailing[CSS_FLEX_DIRECTION_COLUMN]) + child.style.border.getWithFallback(trailingSpacing[CSS_FLEX_DIRECTION_COLUMN], trailing[CSS_FLEX_DIRECTION_COLUMN])))); - } else if (!isFlexBasisAuto(child)) { + } else if (!isFlexBasisAuto(child) && !Float.isNaN(availableInnerMainDim)) { // If the basis isn't 'auto', it is assumed to be zero. child.layout.computedFlexBasis = Math.max(child.style.flexBasis, ((child.style.padding.getWithFallback(leadingSpacing[mainAxis], leading[mainAxis]) + child.style.border.getWithFallback(leadingSpacing[mainAxis], leading[mainAxis])) + (child.style.padding.getWithFallback(trailingSpacing[mainAxis], trailing[mainAxis]) + child.style.border.getWithFallback(trailingSpacing[mainAxis], trailing[mainAxis]))));