Skip to content

Commit c9840a0

Browse files
rename grid item area to grid item and optimise findfrsize
1 parent 8ca3fd3 commit c9840a0

File tree

4 files changed

+131
-136
lines changed

4 files changed

+131
-136
lines changed

tests/grid/AutoPlacementTest.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ TEST_F(GridAutoplacementTest, places_items_with_definite_positions) {
4949
GridLine::fromInteger(2), GridLine::fromInteger(3));
5050

5151
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
52-
auto& placements = autoPlacementResult.gridItemAreas;
52+
auto& placements = autoPlacementResult.gridItems;
5353
ASSERT_EQ(placements.size(), 2);
5454

5555
EXPECT_EQ(placements[0].columnStart, 0);
@@ -71,7 +71,7 @@ TEST_F(GridAutoplacementTest, places_items_with_definite_row_auto_column) {
7171
GridLine::fromInteger(1), GridLine::fromInteger(2));
7272

7373
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
74-
auto& placements = autoPlacementResult.gridItemAreas;
74+
auto& placements = autoPlacementResult.gridItems;
7575
ASSERT_EQ(placements.size(), 2);
7676

7777
EXPECT_EQ(placements[0].columnStart, 0);
@@ -91,7 +91,7 @@ TEST_F(GridAutoplacementTest, handles_overlapping_definite_row_items) {
9191
GridLine::fromInteger(1), GridLine::fromInteger(2));
9292

9393
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
94-
auto& placements = autoPlacementResult.gridItemAreas;
94+
auto& placements = autoPlacementResult.gridItems;
9595

9696
ASSERT_EQ(placements.size(), 2);
9797

@@ -111,7 +111,7 @@ TEST_F(GridAutoplacementTest, places_auto_positioned_items) {
111111
createGridItem();
112112

113113
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
114-
auto& placements = autoPlacementResult.gridItemAreas;
114+
auto& placements = autoPlacementResult.gridItems;
115115

116116
ASSERT_EQ(placements.size(), 2);
117117

@@ -130,7 +130,7 @@ TEST_F(GridAutoplacementTest, handles_large_spans) {
130130
createGridItem(GridLine::auto_(), GridLine::span(5));
131131

132132
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
133-
auto& placements = autoPlacementResult.gridItemAreas;
133+
auto& placements = autoPlacementResult.gridItems;
134134

135135
ASSERT_EQ(placements.size(), 1);
136136

@@ -148,7 +148,7 @@ TEST_F(GridAutoplacementTest, places_items_with_definite_column_auto_row) {
148148
GridLine::auto_(), GridLine::auto_());
149149

150150
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
151-
auto& placements = autoPlacementResult.gridItemAreas;
151+
auto& placements = autoPlacementResult.gridItems;
152152

153153
ASSERT_EQ(placements.size(), 2);
154154

@@ -171,7 +171,7 @@ TEST_F(GridAutoplacementTest, avoids_overlaps_with_definite_column_items) {
171171
GridLine::auto_(), GridLine::auto_());
172172

173173
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
174-
auto& placements = autoPlacementResult.gridItemAreas;
174+
auto& placements = autoPlacementResult.gridItems;
175175

176176
ASSERT_EQ(placements.size(), 2);
177177

@@ -196,7 +196,7 @@ TEST_F(GridAutoplacementTest, handles_mixed_positioning_strategies) {
196196
createGridItem();
197197

198198
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
199-
auto& placements = autoPlacementResult.gridItemAreas;
199+
auto& placements = autoPlacementResult.gridItems;
200200

201201
ASSERT_EQ(placements.size(), 3);
202202

@@ -226,7 +226,7 @@ TEST_F(GridAutoplacementTest, handles_negative_grid_line_references_simple) {
226226
createGridItem(GridLine::fromInteger(-1), GridLine::fromInteger(-2));
227227

228228
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
229-
auto& placements = autoPlacementResult.gridItemAreas;
229+
auto& placements = autoPlacementResult.gridItems;
230230

231231
ASSERT_EQ(placements.size(), 1);
232232
EXPECT_EQ(placements[0].columnStart, 2);
@@ -255,7 +255,7 @@ TEST_F(GridAutoplacementTest, handles_negative_grid_line_references) {
255255
auto node5 = createGridItem();
256256

257257
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
258-
auto& placements = autoPlacementResult.gridItemAreas;
258+
auto& placements = autoPlacementResult.gridItems;
259259

260260
ASSERT_EQ(placements.size(), 5);
261261

@@ -313,7 +313,7 @@ TEST_F(GridAutoplacementTest, handles_negative_grid_lines_with_row_positioning)
313313
auto node5 = createGridItem();
314314

315315
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
316-
auto& placements = autoPlacementResult.gridItemAreas;;
316+
auto& placements = autoPlacementResult.gridItems;;
317317

318318
ASSERT_EQ(placements.size(), 5);
319319

@@ -360,7 +360,7 @@ TEST_F(GridAutoplacementTest, skips_past_large_blocking_items) {
360360
GridLine::fromInteger(1), GridLine::fromInteger(2));
361361

362362
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
363-
auto& placements = autoPlacementResult.gridItemAreas;
363+
auto& placements = autoPlacementResult.gridItems;
364364

365365
ASSERT_EQ(placements.size(), 3);
366366

@@ -394,7 +394,7 @@ TEST_F(GridAutoplacementTest, skips_past_large_blocking_rows) {
394394
GridLine::auto_(), GridLine::auto_());
395395

396396
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
397-
auto& placements = autoPlacementResult.gridItemAreas;
397+
auto& placements = autoPlacementResult.gridItems;
398398

399399
ASSERT_EQ(placements.size(), 2);
400400

@@ -422,7 +422,7 @@ TEST_F(GridAutoplacementTest, handles_nested_overlapping_items) {
422422
GridLine::fromInteger(1), GridLine::fromInteger(2));
423423

424424
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
425-
auto& placements = autoPlacementResult.gridItemAreas;
425+
auto& placements = autoPlacementResult.gridItems;
426426

427427
ASSERT_EQ(placements.size(), 3);
428428

@@ -457,7 +457,7 @@ TEST_F(GridAutoplacementTest, handles_negative_and_positive_grid_lines_auto_row)
457457
auto node5 = createGridItem();
458458

459459
auto autoPlacementResult = AutoPlacement::performAutoPlacement(gridContainer);
460-
auto& placements = autoPlacementResult.gridItemAreas;
460+
auto& placements = autoPlacementResult.gridItems;
461461
ASSERT_EQ(placements.size(), 5);
462462

463463
for (auto placement : placements) {

yoga/algorithm/grid/AutoPlacement.h

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -145,29 +145,29 @@ struct GridItemTrackPlacement {
145145
};
146146

147147
struct AutoPlacement {
148-
struct AutoPlacementItemArea {
148+
struct AutoPlacementItem {
149149
int32_t columnStart;
150150
int32_t columnEnd;
151151
int32_t rowStart;
152152
int32_t rowEnd;
153153

154154
yoga::Node* node;
155155

156-
bool overlaps(const AutoPlacementItemArea& other) const {
156+
bool overlaps(const AutoPlacementItem& other) const {
157157
return columnStart < other.columnEnd && columnEnd > other.columnStart && rowStart < other.rowEnd && rowEnd > other.rowStart;
158158
}
159159
};
160160

161161

162-
std::vector<AutoPlacementItemArea> gridItemAreas;
162+
std::vector<AutoPlacementItem> gridItems;
163163
int32_t minColumnStart;
164164
int32_t minRowStart;
165165
int32_t maxColumnEnd;
166166
int32_t maxRowEnd;
167167

168168
static AutoPlacement performAutoPlacement(yoga::Node* node) {
169-
std::vector<AutoPlacementItemArea> gridItemAreas;
170-
gridItemAreas.reserve(node->getChildCount());
169+
std::vector<AutoPlacementItem> gridItems;
170+
gridItems.reserve(node->getChildCount());
171171
std::unordered_set<yoga::Node*> placedItems;
172172
placedItems.reserve(node->getChildCount());
173173
int32_t minColumnStart = 0;
@@ -177,14 +177,14 @@ struct AutoPlacement {
177177
OccupancyGrid occupancy;
178178

179179
// function to push back a grid item placement and record the min/max column/row start/end
180-
auto recordGridArea = [&](AutoPlacementItemArea& gridItemArea) {
180+
auto recordGridArea = [&](AutoPlacementItem& gridItemArea) {
181181
yoga::assertFatal(
182182
gridItemArea.columnEnd > gridItemArea.columnStart,
183183
"Grid item column end must be greater than column start");
184184
yoga::assertFatal(
185185
gridItemArea.rowEnd > gridItemArea.rowStart,
186186
"Grid item row end must be greater than row start");
187-
gridItemAreas.push_back(gridItemArea);
187+
gridItems.push_back(gridItemArea);
188188
placedItems.insert(gridItemArea.node);
189189
occupancy.markOccupied(gridItemArea.rowStart, gridItemArea.rowEnd, gridItemArea.columnStart, gridItemArea.columnEnd);
190190
minColumnStart = std::min(minColumnStart, gridItemArea.columnStart);
@@ -225,7 +225,7 @@ struct AutoPlacement {
225225
auto rowStart = rowPlacement.start;
226226
auto rowEnd = rowPlacement.end;
227227

228-
auto gridItemArea = AutoPlacementItemArea{
228+
auto gridItemArea = AutoPlacementItem{
229229
columnStart,
230230
columnEnd,
231231
rowStart,
@@ -268,7 +268,7 @@ struct AutoPlacement {
268268

269269
bool placed = false;
270270
while (!placed) {
271-
auto gridItemArea = AutoPlacementItemArea{
271+
auto gridItemArea = AutoPlacementItem{
272272
columnStart,
273273
columnEnd,
274274
rowStart,
@@ -367,7 +367,7 @@ struct AutoPlacement {
367367
auto proposedRowEnd = proposedRowStart + rowSpan;
368368

369369
// Check for overlaps with already placed items
370-
AutoPlacementItemArea proposedPlacement {
370+
AutoPlacementItem proposedPlacement {
371371
columnStart,
372372
columnEnd,
373373
proposedRowStart,
@@ -398,7 +398,7 @@ struct AutoPlacement {
398398
auto rowStart = autoPlacementCursor[1];
399399
auto rowEnd = rowStart + itemRowSpan;
400400

401-
AutoPlacementItemArea proposedPlacement {
401+
AutoPlacementItem proposedPlacement {
402402
columnStart,
403403
columnEnd,
404404
rowStart,
@@ -426,7 +426,7 @@ struct AutoPlacement {
426426
}
427427

428428
return AutoPlacement {
429-
std::move(gridItemAreas),
429+
std::move(gridItems),
430430
minColumnStart,
431431
minRowStart,
432432
maxColumnEnd,
@@ -435,7 +435,7 @@ struct AutoPlacement {
435435
}
436436
};
437437

438-
struct GridItemArea {
438+
struct GridItem {
439439
size_t columnStart;
440440
size_t columnEnd;
441441
size_t rowStart;
@@ -445,7 +445,7 @@ struct GridItemArea {
445445
// https://www.w3.org/TR/css-grid-1/#algo-baseline-shims
446446
float baselineShim = 0.0f;
447447

448-
GridItemArea(
448+
GridItem(
449449
size_t columnStart,
450450
size_t columnEnd,
451451
size_t rowStart,
@@ -462,10 +462,10 @@ struct GridItemArea {
462462

463463
// Baseline sharing groups - items grouped by their starting row for resolve intrinsic size step in TrackSizing
464464
// https://www.w3.org/TR/css-grid-1/#algo-baseline-shims
465-
using BaselineItemGroups = std::map<size_t, std::vector<GridItemArea*>>;
465+
using BaselineItemGroups = std::map<size_t, std::vector<GridItem*>>;
466466

467467
struct ResolvedAutoPlacement {
468-
std::vector<GridItemArea> gridItemAreas;
468+
std::vector<GridItem> gridItems;
469469
BaselineItemGroups baselineItemGroups;
470470
int32_t minColumnStart;
471471
int32_t minRowStart;
@@ -482,13 +482,13 @@ struct ResolvedAutoPlacement {
482482
auto maxColumnEnd = autoPlacement.maxColumnEnd;
483483
auto maxRowEnd = autoPlacement.maxRowEnd;
484484

485-
std::vector<GridItemArea> resolvedAreas;
486-
resolvedAreas.reserve(autoPlacement.gridItemAreas.size());
485+
std::vector<GridItem> resolvedAreas;
486+
resolvedAreas.reserve(autoPlacement.gridItems.size());
487487

488488
BaselineItemGroups baselineGroups;
489489
auto alignItems = node->style().alignItems();
490490

491-
for (auto& placement : autoPlacement.gridItemAreas) {
491+
for (auto& placement : autoPlacement.gridItems) {
492492
resolvedAreas.emplace_back(
493493
static_cast<size_t>(placement.columnStart - minColumnStart),
494494
static_cast<size_t>(placement.columnEnd - minColumnStart),

yoga/algorithm/grid/GridLayout.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ void calculateGridLayoutInternal(Node* node,
6868
float containerInnerHeight = heightIsDefinite ? availableInnerHeight : YGUndefined;
6969
auto& rowTracks = gridTracks.rowTracks;
7070
auto& columnTracks = gridTracks.columnTracks;
71-
auto& itemAreas = autoPlacement.gridItemAreas;
71+
auto& gridItems = autoPlacement.gridItems;
7272
auto& baselineItemGroups = autoPlacement.baselineItemGroups;
7373
bool needsSecondTrackSizingPass = true;
7474

@@ -79,7 +79,7 @@ void calculateGridLayoutInternal(Node* node,
7979
rowTracks,
8080
containerInnerWidth,
8181
containerInnerHeight,
82-
itemAreas,
82+
gridItems,
8383
widthSizingMode,
8484
heightSizingMode,
8585
direction,
@@ -163,7 +163,7 @@ void calculateGridLayoutInternal(Node* node,
163163
rowTracks,
164164
containerInnerWidth,
165165
containerInnerHeight,
166-
itemAreas,
166+
gridItems,
167167
widthSizingMode,
168168
heightSizingMode,
169169
direction,
@@ -232,7 +232,7 @@ void calculateGridLayoutInternal(Node* node,
232232
rowGridLineOffsets.push_back(offset);
233233
}
234234

235-
for (auto& item : itemAreas) {
235+
for (auto& item : gridItems) {
236236
auto [containingBlockWidth, containingBlockHeight] = trackSizing.getContainingBlockSizeForItem(item, finalEffectiveColumnGap, finalEffectiveRowGap);
237237
float gridItemInlineStart = columnGridLineOffsets[std::min(item.columnStart, columnTracks.size())];
238238
float gridItemBlockStart = rowGridLineOffsets[std::min(item.rowStart, rowTracks.size())];

0 commit comments

Comments
 (0)