YGNodeBoundAxisWithinMinAndMax accepts YGFloatOptional

Summary:
@public

Saves some calls to `.unwrap()`

Reviewed By: SidharthGuglani

Differential Revision: D13209153

fbshipit-source-id: 5658586e91496085f39b3522db6364aaeafcfe2f
This commit is contained in:
David Aurelio
2018-12-06 07:35:10 -08:00
committed by Facebook Github Bot
parent 10b316f315
commit 5719132f58

View File

@@ -1209,7 +1209,7 @@ static inline bool YGNodeIsLayoutDimDefined(
static YGFloatOptional YGNodeBoundAxisWithinMinAndMax( static YGFloatOptional YGNodeBoundAxisWithinMinAndMax(
const YGNodeRef node, const YGNodeRef node,
const YGFlexDirection axis, const YGFlexDirection axis,
const float value, const YGFloatOptional value,
const float axisSize) { const float axisSize) {
YGFloatOptional min; YGFloatOptional min;
YGFloatOptional max; YGFloatOptional max;
@@ -1226,15 +1226,15 @@ static YGFloatOptional YGNodeBoundAxisWithinMinAndMax(
node->getStyle().maxDimensions[YGDimensionWidth], axisSize); node->getStyle().maxDimensions[YGDimensionWidth], axisSize);
} }
if (max >= YGFloatOptional{0} && YGFloatOptional{value} > max) { if (max >= YGFloatOptional{0} && value > max) {
return max; return max;
} }
if (min >= YGFloatOptional{0} && YGFloatOptional{value} < min) { if (min >= YGFloatOptional{0} && value < min) {
return min; return min;
} }
return YGFloatOptional{value}; return value;
} }
// Like YGNodeBoundAxisWithinMinAndMax but also ensures that the value doesn't // Like YGNodeBoundAxisWithinMinAndMax but also ensures that the value doesn't
@@ -1246,7 +1246,9 @@ static inline float YGNodeBoundAxis(
const float axisSize, const float axisSize,
const float widthSize) { const float widthSize) {
return YGFloatMax( return YGFloatMax(
(YGNodeBoundAxisWithinMinAndMax(node, axis, value, axisSize)).unwrap(), (YGNodeBoundAxisWithinMinAndMax(
node, axis, YGFloatOptional{value}, axisSize))
.unwrap(),
YGNodePaddingAndBorderForAxis(node, axis, widthSize)); YGNodePaddingAndBorderForAxis(node, axis, widthSize));
} }
@@ -2014,7 +2016,7 @@ static YGCollectFlexItemsRowValues YGCalculateCollectFlexItemsRowValues(
(YGNodeBoundAxisWithinMinAndMax( (YGNodeBoundAxisWithinMinAndMax(
child, child,
mainAxis, mainAxis,
(child->getLayout().computedFlexBasis).unwrap(), child->getLayout().computedFlexBasis,
mainAxisownerSize)) mainAxisownerSize))
.unwrap(); .unwrap();
@@ -2089,13 +2091,12 @@ static float YGDistributeFreeSpaceSecondPass(
const bool isNodeFlexWrap = node->getStyle().flexWrap != YGWrapNoWrap; const bool isNodeFlexWrap = node->getStyle().flexWrap != YGWrapNoWrap;
for (auto currentRelativeChild : collectedFlexItemsValues.relativeChildren) { for (auto currentRelativeChild : collectedFlexItemsValues.relativeChildren) {
childFlexBasis = childFlexBasis = (YGNodeBoundAxisWithinMinAndMax(
(YGNodeBoundAxisWithinMinAndMax( currentRelativeChild,
currentRelativeChild, mainAxis,
mainAxis, currentRelativeChild->getLayout().computedFlexBasis,
(currentRelativeChild->getLayout().computedFlexBasis).unwrap(), mainAxisownerSize))
mainAxisownerSize)) .unwrap();
.unwrap();
float updatedMainSize = childFlexBasis; float updatedMainSize = childFlexBasis;
if (!YGFloatIsUndefined(collectedFlexItemsValues.remainingFreeSpace) && if (!YGFloatIsUndefined(collectedFlexItemsValues.remainingFreeSpace) &&
@@ -2273,7 +2274,7 @@ static void YGDistributeFreeSpaceFirstPass(
(YGNodeBoundAxisWithinMinAndMax( (YGNodeBoundAxisWithinMinAndMax(
currentRelativeChild, currentRelativeChild,
mainAxis, mainAxis,
(currentRelativeChild->getLayout().computedFlexBasis).unwrap(), currentRelativeChild->getLayout().computedFlexBasis,
mainAxisownerSize)) mainAxisownerSize))
.unwrap(); .unwrap();
@@ -3454,7 +3455,10 @@ static void YGNodelayoutImpl(
YGFloatMin( YGFloatMin(
availableInnerMainDim + paddingAndBorderAxisMain, availableInnerMainDim + paddingAndBorderAxisMain,
(YGNodeBoundAxisWithinMinAndMax( (YGNodeBoundAxisWithinMinAndMax(
node, mainAxis, maxLineMainDim, mainAxisownerSize)) node,
mainAxis,
YGFloatOptional{maxLineMainDim},
mainAxisownerSize))
.unwrap()), .unwrap()),
paddingAndBorderAxisMain), paddingAndBorderAxisMain),
dim[mainAxis]); dim[mainAxis]);
@@ -3484,7 +3488,8 @@ static void YGNodelayoutImpl(
(YGNodeBoundAxisWithinMinAndMax( (YGNodeBoundAxisWithinMinAndMax(
node, node,
crossAxis, crossAxis,
totalLineCrossDim + paddingAndBorderAxisCross, YGFloatOptional{totalLineCrossDim +
paddingAndBorderAxisCross},
crossAxisownerSize)) crossAxisownerSize))
.unwrap()), .unwrap()),
paddingAndBorderAxisCross), paddingAndBorderAxisCross),