From 2b714a5b5db19ac54715c9fee108e78c1d5a1b1e Mon Sep 17 00:00:00 2001 From: Pritesh Nandgaonkar Date: Wed, 4 Apr 2018 07:55:44 -0700 Subject: [PATCH] Change the type of getTrailingPosition to YGFloatOptional Summary: Change the type of getTrailingPosition to YGFloatOptional Reviewed By: emilsjolander Differential Revision: D7344710 fbshipit-source-id: eb4c422b6e0f55d90b083221aa8ff1ab797d58a8 --- yoga/YGNode.cpp | 14 +++++++------- yoga/YGNode.h | 4 +++- yoga/Yoga.cpp | 23 ++++++++++++----------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/yoga/YGNode.cpp b/yoga/YGNode.cpp index 3d1729cd..68d7b104 100644 --- a/yoga/YGNode.cpp +++ b/yoga/YGNode.cpp @@ -104,14 +104,14 @@ YGFloatOptional YGNode::getLeadingPosition( : YGResolveValue(*leadingPosition, axisSize); } -float YGNode::getTrailingPosition( - const YGFlexDirection axis, - const float axisSize) const { +YGFloatOptional YGNode::getTrailingPosition( + const YGFlexDirection& axis, + const float& axisSize) const { if (YGFlexDirectionIsRow(axis)) { const YGValue* trailingPosition = YGComputedEdgeValue(style_.position, YGEdgeEnd, &YGValueUndefined); if (trailingPosition->unit != YGUnitUndefined) { - return YGUnwrapFloatOptional(YGResolveValue(*trailingPosition, axisSize)); + return YGResolveValue(*trailingPosition, axisSize); } } @@ -119,8 +119,8 @@ float YGNode::getTrailingPosition( YGComputedEdgeValue(style_.position, trailing[axis], &YGValueUndefined); return trailingPosition->unit == YGUnitUndefined - ? 0.0f - : YGUnwrapFloatOptional(YGResolveValue(*trailingPosition, axisSize)); + ? YGFloatOptional(0) + : YGResolveValue(*trailingPosition, axisSize); } bool YGNode::isLeadingPositionDefined(const YGFlexDirection axis) const { @@ -345,7 +345,7 @@ float YGNode::relativePosition( const float axisSize) { return isLeadingPositionDefined(axis) ? YGUnwrapFloatOptional(getLeadingPosition(axis, axisSize)) - : -getTrailingPosition(axis, axisSize); + : -YGUnwrapFloatOptional(getTrailingPosition(axis, axisSize)); } void YGNode::setPosition( diff --git a/yoga/YGNode.h b/yoga/YGNode.h index 8fb55d6d..87637991 100644 --- a/yoga/YGNode.h +++ b/yoga/YGNode.h @@ -89,7 +89,9 @@ struct YGNode { const float& axisSize) const; bool isLeadingPositionDefined(const YGFlexDirection axis) const; bool isTrailingPosDefined(const YGFlexDirection axis) const; - float getTrailingPosition(const YGFlexDirection axis, const float axisSize) const; + YGFloatOptional getTrailingPosition( + const YGFlexDirection& axis, + const float& axisSize) const; float getLeadingMargin(const YGFlexDirection axis, const float widthSize) const; float getTrailingMargin(const YGFlexDirection axis, const float widthSize) const; float getLeadingBorder(const YGFlexDirection& flexDirection) const; diff --git a/yoga/Yoga.cpp b/yoga/Yoga.cpp index fbb37ee4..2805e7f6 100644 --- a/yoga/Yoga.cpp +++ b/yoga/Yoga.cpp @@ -1408,9 +1408,9 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node, childWidth = node->getLayout().measuredDimensions[YGDimensionWidth] - (node->getLeadingBorder(YGFlexDirectionRow) + node->getTrailingBorder(YGFlexDirectionRow)) - - (YGUnwrapFloatOptional( - child->getLeadingPosition(YGFlexDirectionRow, width)) + - child->getTrailingPosition(YGFlexDirectionRow, width)); + YGUnwrapFloatOptional( + child->getLeadingPosition(YGFlexDirectionRow, width) + + child->getTrailingPosition(YGFlexDirectionRow, width)); childWidth = YGNodeBoundAxis(child, YGFlexDirectionRow, childWidth, width, width); } } @@ -1425,12 +1425,13 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node, // offsets if they're defined. if (child->isLeadingPositionDefined(YGFlexDirectionColumn) && child->isTrailingPosDefined(YGFlexDirectionColumn)) { - childHeight = node->getLayout().measuredDimensions[YGDimensionHeight] - + childHeight = + node->getLayout().measuredDimensions[YGDimensionHeight] - (node->getLeadingBorder(YGFlexDirectionColumn) + node->getTrailingBorder(YGFlexDirectionColumn)) - - (YGUnwrapFloatOptional( - child->getLeadingPosition(YGFlexDirectionColumn, height)) + - child->getTrailingPosition(YGFlexDirectionColumn, height)); + YGUnwrapFloatOptional( + child->getLeadingPosition(YGFlexDirectionColumn, height) + + child->getTrailingPosition(YGFlexDirectionColumn, height)); childHeight = YGNodeBoundAxis(child, YGFlexDirectionColumn, childHeight, height, width); } } @@ -1503,8 +1504,8 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node, child->getLayout().measuredDimensions[dim[mainAxis]] - node->getTrailingBorder(mainAxis) - child->getTrailingMargin(mainAxis, width) - - child->getTrailingPosition( - mainAxis, isMainAxisRow ? width : height), + YGUnwrapFloatOptional(child->getTrailingPosition( + mainAxis, isMainAxisRow ? width : height)), leading[mainAxis]); } else if ( !child->isLeadingPositionDefined(mainAxis) && @@ -1530,8 +1531,8 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node, child->getLayout().measuredDimensions[dim[crossAxis]] - node->getTrailingBorder(crossAxis) - child->getTrailingMargin(crossAxis, width) - - child->getTrailingPosition( - crossAxis, isMainAxisRow ? height : width), + YGUnwrapFloatOptional(child->getTrailingPosition( + crossAxis, isMainAxisRow ? height : width)), leading[crossAxis]); } else if (