Skip to content

Commit 6ce9854

Browse files
create two layout pass reason flexLayout and flexMeasure instead of flex
Summary: We had flex as a reason for both layout and measure. Now creating separating reason flexLayout and flexMeasure in this diff. Also changed ordering of items in Enum to group layout and measure reasons Reviewed By: davidaurelio Differential Revision: D16562350 fbshipit-source-id: 75501f9d4dde0974009193b3991a8acc97b02ad0
1 parent 678d5f7 commit 6ce9854

File tree

4 files changed

+33
-26
lines changed

4 files changed

+33
-26
lines changed

ReactAndroid/src/main/java/com/facebook/yoga/LayoutPassReason.java

+14-12
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88

99
public enum LayoutPassReason {
1010
INITIAL(0),
11-
MEASURE(1),
12-
ABS_MEASURE(2),
13-
FLEX(3),
14-
ABS_LAYOUT(4),
15-
STRETCH(5),
16-
MULTILINE_STRETCH(6);
11+
ABS_LAYOUT(1),
12+
STRETCH(2),
13+
MULTILINE_STRETCH(3),
14+
FLEX_LAYOUT(4),
15+
MEASURE(5),
16+
ABS_MEASURE(6),
17+
FLEX_MEASURE(7);
1718

1819
private final int mIntValue;
1920

@@ -28,12 +29,13 @@ public int intValue() {
2829
public static LayoutPassReason fromInt(int value) {
2930
switch (value) {
3031
case 0: return INITIAL;
31-
case 1: return MEASURE;
32-
case 2: return ABS_MEASURE;
33-
case 3: return FLEX;
34-
case 4: return ABS_LAYOUT;
35-
case 5: return STRETCH;
36-
case 6: return MULTILINE_STRETCH;
32+
case 1: return ABS_LAYOUT;
33+
case 2: return STRETCH;
34+
case 3: return MULTILINE_STRETCH;
35+
case 4: return FLEX_LAYOUT;
36+
case 5: return MEASURE;
37+
case 6: return ABS_MEASURE;
38+
case 7: return FLEX_MEASURE;
3739
default: throw new IllegalArgumentException("Unknown enum value: " + value);
3840
}
3941
}

ReactCommon/yoga/yoga/Yoga.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -2185,6 +2185,7 @@ static float YGDistributeFreeSpaceSecondPass(
21852185
const YGMeasureMode childHeightMeasureMode =
21862186
!isMainAxisRow ? childMainMeasureMode : childCrossMeasureMode;
21872187

2188+
const bool isLayoutPass = performLayout && !requiresStretchLayout;
21882189
// Recursively call the layout algorithm for this child with the updated
21892190
// main size.
21902191
YGLayoutNodeInternal(
@@ -2196,8 +2197,9 @@ static float YGDistributeFreeSpaceSecondPass(
21962197
childHeightMeasureMode,
21972198
availableInnerWidth,
21982199
availableInnerHeight,
2199-
performLayout && !requiresStretchLayout,
2200-
LayoutPassReason::kFlex,
2200+
isLayoutPass,
2201+
isLayoutPass ? LayoutPassReason::kFlexLayout
2202+
: LayoutPassReason::kFlexMeasure,
22012203
config,
22022204
layoutMarkerData,
22032205
layoutContext,

ReactCommon/yoga/yoga/event/event.cpp

+8-6
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,20 @@ const char* LayoutPassReasonToString(const LayoutPassReason value) {
1616
switch (value) {
1717
case LayoutPassReason::kInitial:
1818
return "initial";
19-
case LayoutPassReason::kMeasureChild:
20-
return "measure";
21-
case LayoutPassReason::kAbsMeasureChild:
22-
return "abs_measure";
23-
case LayoutPassReason::kFlex:
24-
return "flex";
2519
case LayoutPassReason::kAbsLayout:
2620
return "abs_layout";
2721
case LayoutPassReason::kStretch:
2822
return "stretch";
2923
case LayoutPassReason::kMultilineStretch:
3024
return "multiline_stretch";
25+
case LayoutPassReason::kFlexLayout:
26+
return "flex_layout";
27+
case LayoutPassReason::kMeasureChild:
28+
return "measure";
29+
case LayoutPassReason::kAbsMeasureChild:
30+
return "abs_measure";
31+
case LayoutPassReason::kFlexMeasure:
32+
return "flex_measure";
3133
default:
3234
return "unknown";
3335
}

ReactCommon/yoga/yoga/event/event.h

+7-6
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@ struct LayoutData {
3434

3535
enum struct LayoutPassReason : int {
3636
kInitial = 0,
37-
kMeasureChild = 1,
38-
kAbsMeasureChild = 2,
39-
kFlex = 3,
40-
kAbsLayout = 4,
41-
kStretch = 5,
42-
kMultilineStretch = 6
37+
kAbsLayout = 1,
38+
kStretch = 2,
39+
kMultilineStretch = 3,
40+
kFlexLayout = 4,
41+
kMeasureChild = 5,
42+
kAbsMeasureChild = 6,
43+
kFlexMeasure = 7
4344
};
4445

4546
const char* LayoutPassReasonToString(const LayoutPassReason value);

0 commit comments

Comments
 (0)