Fix style resolution functions returning FloatOptional (#1404)

Summary:
X-link: https://github.com/facebook/react-native/pull/39595

Pull Request resolved: https://github.com/facebook/yoga/pull/1404

These functions all ensure their returns are defined, but return FloatOptional anyway, making their callers have to deal with that possibility. Return `float` instead of `FloatOptional`, and do some additional cleanup.

Reviewed By: rshest

Differential Revision: D49531421

fbshipit-source-id: 95b21cade74e501dd54c7b6ca667c8c3859c5dae
This commit is contained in:
Nick Gerleman
2023-10-03 15:36:01 -07:00
committed by Facebook GitHub Bot
parent ce8fe99bf9
commit 2734784ddb
7 changed files with 205 additions and 341 deletions

View File

@@ -48,8 +48,7 @@ class YG_EXPORT Node : public ::YGNode {
std::array<YGValue, 2> resolvedDimensions_ = {
{YGValueUndefined, YGValueUndefined}};
FloatOptional relativePosition(const FlexDirection axis, const float axisSize)
const;
float relativePosition(FlexDirection axis, const float axisSize) const;
void useWebDefaults() {
style_.flexDirection() = FlexDirection::Row;
@@ -182,48 +181,28 @@ class YG_EXPORT Node : public ::YGNode {
static CompactValue computeEdgeValueForColumn(
const Style::Edges& edges,
YGEdge edge,
CompactValue defaultValue);
YGEdge edge);
static CompactValue computeEdgeValueForRow(
const Style::Edges& edges,
YGEdge rowEdge,
YGEdge edge,
CompactValue defaultValue);
YGEdge edge);
// Methods related to positions, margin, padding and border
FloatOptional getLeadingPosition(
const FlexDirection axis,
const float axisSize) const;
bool isLeadingPositionDefined(const FlexDirection axis) const;
bool isTrailingPosDefined(const FlexDirection axis) const;
FloatOptional getTrailingPosition(
const FlexDirection axis,
const float axisSize) const;
FloatOptional getLeadingMargin(
const FlexDirection axis,
const float widthSize) const;
FloatOptional getTrailingMargin(
const FlexDirection axis,
const float widthSize) const;
float getLeadingBorder(const FlexDirection flexDirection) const;
float getTrailingBorder(const FlexDirection flexDirection) const;
FloatOptional getLeadingPadding(
const FlexDirection axis,
const float widthSize) const;
FloatOptional getTrailingPadding(
const FlexDirection axis,
const float widthSize) const;
FloatOptional getLeadingPaddingAndBorder(
const FlexDirection axis,
const float widthSize) const;
FloatOptional getTrailingPaddingAndBorder(
const FlexDirection axis,
const float widthSize) const;
FloatOptional getMarginForAxis(
const FlexDirection axis,
const float widthSize) const;
float getGapForAxis(const FlexDirection axis) const;
bool isLeadingPositionDefined(FlexDirection axis) const;
bool isTrailingPosDefined(FlexDirection axis) const;
float getLeadingPosition(FlexDirection axis, float axisSize) const;
float getTrailingPosition(FlexDirection axis, float axisSize) const;
float getLeadingMargin(FlexDirection axis, float widthSize) const;
float getTrailingMargin(FlexDirection axis, float widthSize) const;
float getLeadingBorder(FlexDirection flexDirection) const;
float getTrailingBorder(FlexDirection flexDirection) const;
float getLeadingPadding(FlexDirection axis, float widthSize) const;
float getTrailingPadding(FlexDirection axis, float widthSize) const;
float getLeadingPaddingAndBorder(FlexDirection axis, float widthSize) const;
float getTrailingPaddingAndBorder(FlexDirection axis, float widthSize) const;
float getMarginForAxis(FlexDirection axis, float widthSize) const;
float getGapForAxis(FlexDirection axis) const;
// Setters
void setContext(void* context) {
@@ -301,8 +280,8 @@ class YG_EXPORT Node : public ::YGNode {
void markDirtyAndPropagateDownwards();
// Other methods
YGValue marginLeadingValue(const FlexDirection axis) const;
YGValue marginTrailingValue(const FlexDirection axis) const;
YGValue marginLeadingValue(FlexDirection axis) const;
YGValue marginTrailingValue(FlexDirection axis) const;
YGValue resolveFlexBasisPtr() const;
void resolveDimension();
Direction resolveDirection(const Direction ownerDirection);