[css-grid] Prevent FindUsedFlexFraction from iterating items twice
IndefiniteSizeStrategy::FindUsedFlexFraction needs to iterate all grid items that cross a flexible track. To do so it, takes the indices of the flex tracks, and for each one it uses GridIterator to iterate the items in that track. Then, to avoid processing the same item multiple times, it used to check that the item started in the current flex track, not in a previous one. However, this was insufficient: it wasn't taking into account that an item can be in a single flex track, but span multiple tracks in the other axis. Therefore, this patch changes it to use the same approach as in GridTrackSizingAlgorithm::ResolveIntrinsicTrackSizes, i.e. creates a HashSet outside of the loop, and inserts each given grid item to it, checking whether it's a new entry or not. Bug: 1026275 Change-Id: Ia0327e0459f2398de84b27851be53867f9be5f7a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2506210Reviewed-by:Manuel Rego <rego@igalia.com> Reviewed-by:
Javier Fernandez <jfernandez@igalia.com> Commit-Queue: Oriol Brufau <obrufau@igalia.com> Cr-Commit-Position: refs/heads/master@{#821910}
Showing
Please register or sign in to comment