| Index: Source/core/rendering/RenderGrid.cpp
|
| diff --git a/Source/core/rendering/RenderGrid.cpp b/Source/core/rendering/RenderGrid.cpp
|
| index e7daaecd24e539d34fa4095dad4fb805159dccc8..5702b762c1473e93f2b1325786fdc59c56b7b57b 100644
|
| --- a/Source/core/rendering/RenderGrid.cpp
|
| +++ b/Source/core/rendering/RenderGrid.cpp
|
| @@ -743,11 +743,13 @@ void RenderGrid::resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizing
|
|
|
| static bool sortByGridTrackGrowthPotential(const GridTrack* track1, const GridTrack* track2)
|
| {
|
| - if (track1->m_maxBreadth == infinity)
|
| - return track2->m_maxBreadth == infinity;
|
| + // This check ensures that we respect the irreflexivity property of the strict weak ordering required by std::sort
|
| + // (forall x: NOT x < x).
|
| + if (track1->m_maxBreadth == infinity && track2->m_maxBreadth == infinity)
|
| + return false;
|
|
|
| - if (track2->m_maxBreadth == infinity)
|
| - return true;
|
| + if (track1->m_maxBreadth == infinity || track2->m_maxBreadth == infinity)
|
| + return track2->m_maxBreadth == infinity;
|
|
|
| return (track1->m_maxBreadth - track1->m_usedBreadth) < (track2->m_maxBreadth - track2->m_usedBreadth);
|
| }
|
|
|