Skip to content

Commit 02aa523

Browse files
performance - early exit for flexible and intrinsic tracks
1 parent 96d938f commit 02aa523

2 files changed

Lines changed: 146 additions & 174 deletions

File tree

yoga/algorithm/grid/AutoPlacement.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,11 @@ struct GridItem {
444444
// additional space added to align baselines
445445
// https://www.w3.org/TR/css-grid-1/#algo-baseline-shims
446446
float baselineShim = 0.0f;
447+
// Flags used for optimisations in TrackSizing
448+
bool crossesIntrinsicRow = false;
449+
bool crossesIntrinsicColumn = false;
450+
bool crossesFlexibleRow = false;
451+
bool crossesFlexibleColumn = false;
447452

448453
GridItem(
449454
size_t columnStart,
@@ -458,6 +463,13 @@ struct GridItem {
458463
rowEnd(rowEnd),
459464
node(node),
460465
baselineShim(baselineShim) {}
466+
467+
bool crossesIntrinsicTrack(Dimension dimension) const {
468+
return dimension == Dimension::Width ? crossesIntrinsicColumn : crossesIntrinsicRow;
469+
}
470+
bool crossesFlexibleTrack(Dimension dimension) const {
471+
return dimension == Dimension::Width ? crossesFlexibleColumn : crossesFlexibleRow;
472+
}
461473
};
462474

463475
// Baseline sharing groups - items grouped by their starting row for resolve intrinsic size step in TrackSizing

0 commit comments

Comments
 (0)