WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-136218-20141112193747.patch (text/plain), 40.61 KB, created by
Sergio Villar Senin
on 2014-11-12 10:37:45 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Sergio Villar Senin
Created:
2014-11-12 10:37:45 PST
Size:
40.61 KB
patch
obsolete
>Subversion Revision: 176015 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 74fe0100291c3abb53df8ecf1a447ff05ce943e3..c662e9aeafe4a9021736c7ca84e06d4ffc3845cd 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,57 @@ >+2014-11-12 Sergio Villar Senin <svillar@igalia.com> >+ >+ [CSS Grid Layout] Replace the usage of size_t by unsigned >+ https://bugs.webkit.org/show_bug.cgi?id=136218 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ In general, size_t should be used for sizes of objects in >+ memory. We're using it to represent indexes and spans in the >+ grid. Now that the maximum number of tracks is 1 million, it >+ should be safe to replace them by unsigned integers. >+ >+ No new tests as there is no change in functionality. >+ >+ * css/CSSParser.cpp: >+ (WebCore::CSSParser::parseGridTrackRepeatFunction): >+ * css/StyleResolver.cpp: >+ (WebCore::createImplicitNamedGridLinesFromGridArea): >+ (WebCore::createGridTrackList): >+ * rendering/RenderGrid.cpp: >+ (WebCore::RenderGrid::GridIterator::GridIterator): >+ (WebCore::RenderGrid::GridIterator::nextGridItem): >+ (WebCore::RenderGrid::GridIterator::isEmptyAreaEnough): >+ (WebCore::RenderGrid::GridIterator::nextEmptyGridArea): >+ (WebCore::RenderGrid::GridSizingData::GridSizingData): >+ (WebCore::RenderGrid::computeUsedBreadthOfGridTracks): >+ (WebCore::RenderGrid::gridTrackSize): >+ (WebCore::RenderGrid::distributeSpaceToTracks): >+ (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth): >+ (WebCore::RenderGrid::ensureGridSize): >+ (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): >+ (WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid): >+ (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): >+ (WebCore::RenderGrid::populateGridPositions): >+ * rendering/RenderGrid.h: >+ * rendering/style/GridCoordinate.h: >+ (WebCore::GridSpan::integerSpan): >+ * rendering/style/GridResolvedPosition.cpp: >+ (WebCore::GridResolvedPosition::explicitGridColumnCount): >+ (WebCore::GridResolvedPosition::explicitGridRowCount): >+ (WebCore::explicitGridSizeForSide): >+ (WebCore::GridResolvedPosition::resolveNamedGridLinePositionFromStyle): >+ (WebCore::GridResolvedPosition::resolveGridPositionFromStyle): >+ (WebCore::GridResolvedPosition::resolveGridPositionAgainstOppositePosition): >+ (WebCore::firstNamedGridLineBeforePosition): >+ (WebCore::GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): >+ (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): >+ * rendering/style/GridResolvedPosition.h: >+ (WebCore::GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide): >+ (WebCore::GridResolvedPosition::adjustGridPositionForSide): >+ (WebCore::GridResolvedPosition::GridResolvedPosition): >+ (WebCore::GridResolvedPosition::toInt): >+ * rendering/style/StyleGridData.h: >+ > 2014-09-01 Philippe Normand <pnormand@igalia.com> > > [WK2] UserMediaClient support >diff --git a/Source/WebCore/css/CSSParser.cpp b/Source/WebCore/css/CSSParser.cpp >index 6a107b05bf5bdebce219ba4ee287eeddfc4b1c33..780f5d100ca7d001a6b5e0d458cc325eb9ea680f 100644 >--- a/Source/WebCore/css/CSSParser.cpp >+++ b/Source/WebCore/css/CSSParser.cpp >@@ -5269,7 +5269,7 @@ bool CSSParser::parseGridTrackRepeatFunction(CSSValueList& list) > ASSERT(arguments->valueAt(0)->fValue > 0); > // If arguments->valueAt(0)->fValue > SIZE_MAX then repetitions becomes 0 during the type casting, that's why we > // clamp it down to kGridMaxTracks before the type casting. >- size_t repetitions = clampTo<size_t>(arguments->valueAt(0)->fValue, 0, kGridMaxTracks); >+ unsigned repetitions = clampTo<unsigned>(arguments->valueAt(0)->fValue, 0, kGridMaxTracks); > > RefPtr<CSSValueList> repeatedValues = CSSValueList::createSpaceSeparated(); > arguments->next(); // Skip the repetition count. >diff --git a/Source/WebCore/css/StyleResolver.cpp b/Source/WebCore/css/StyleResolver.cpp >index 1778771cc945af5fe55a269605b00c320b6b4793..26d21be9ec9b67c2edd988f22d3d8f3b7d7649c9 100644 >--- a/Source/WebCore/css/StyleResolver.cpp >+++ b/Source/WebCore/css/StyleResolver.cpp >@@ -1895,12 +1895,12 @@ static void createImplicitNamedGridLinesFromGridArea(const NamedGridAreaMap& nam > for (auto& area : namedGridAreas) { > GridSpan areaSpan = direction == ForRows ? area.value.rows : area.value.columns; > { >- auto& startVector = namedGridLines.add(area.key + "-start", Vector<size_t>()).iterator->value; >+ auto& startVector = namedGridLines.add(area.key + "-start", Vector<unsigned>()).iterator->value; > startVector.append(areaSpan.resolvedInitialPosition.toInt()); > std::sort(startVector.begin(), startVector.end()); > } > { >- auto& endVector = namedGridLines.add(area.key + "-end", Vector<size_t>()).iterator->value; >+ auto& endVector = namedGridLines.add(area.key + "-end", Vector<unsigned>()).iterator->value; > endVector.append(areaSpan.resolvedFinalPosition.next().toInt()); > std::sort(endVector.begin(), endVector.end()); > } >@@ -1970,12 +1970,12 @@ static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz > if (!is<CSSValueList>(*value)) > return false; > >- size_t currentNamedGridLine = 0; >+ unsigned currentNamedGridLine = 0; > for (auto& currentValue : downcast<CSSValueList>(*value)) { > if (is<CSSGridLineNamesValue>(currentValue.get())) { > for (auto& currentGridLineName : downcast<CSSGridLineNamesValue>(currentValue.get())) { > String namedGridLine = downcast<CSSPrimitiveValue>(currentGridLineName.get()).getStringValue(); >- NamedGridLinesMap::AddResult result = namedGridLines.add(namedGridLine, Vector<size_t>()); >+ NamedGridLinesMap::AddResult result = namedGridLines.add(namedGridLine, Vector<unsigned>()); > result.iterator->value.append(currentNamedGridLine); > OrderedNamedGridLinesMap::AddResult orderedResult = orderedNamedGridLines.add(currentNamedGridLine, Vector<String>()); > orderedResult.iterator->value.append(namedGridLine); >diff --git a/Source/WebCore/rendering/RenderGrid.cpp b/Source/WebCore/rendering/RenderGrid.cpp >index ee54bc74f8261f7e7fdee625e32ab7ba35d63283..d6c8dc2c362c780582b04f2fc7b98e1b4d53d232 100644 >--- a/Source/WebCore/rendering/RenderGrid.cpp >+++ b/Source/WebCore/rendering/RenderGrid.cpp >@@ -89,7 +89,7 @@ class RenderGrid::GridIterator { > public: > // |direction| is the direction that is fixed to |fixedTrackIndex| so e.g > // GridIterator(m_grid, ForColumns, 1) will walk over the rows of the 2nd column. >- GridIterator(const Vector<Vector<Vector<RenderBox*, 1>>>& grid, GridTrackSizingDirection direction, size_t fixedTrackIndex, size_t varyingTrackIndex = 0) >+ GridIterator(const Vector<Vector<Vector<RenderBox*, 1>>>& grid, GridTrackSizingDirection direction, unsigned fixedTrackIndex, unsigned varyingTrackIndex = 0) > : m_grid(grid) > , m_direction(direction) > , m_rowIndex((direction == ForColumns) ? varyingTrackIndex : fixedTrackIndex) >@@ -105,8 +105,8 @@ public: > if (!m_grid.size()) > return 0; > >- size_t& varyingTrackIndex = (m_direction == ForColumns) ? m_rowIndex : m_columnIndex; >- const size_t endOfVaryingTrackIndex = (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); >+ unsigned& varyingTrackIndex = (m_direction == ForColumns) ? m_rowIndex : m_columnIndex; >+ const unsigned endOfVaryingTrackIndex = (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); > for (; varyingTrackIndex < endOfVaryingTrackIndex; ++varyingTrackIndex) { > const Vector<RenderBox*>& children = m_grid[m_rowIndex][m_columnIndex]; > if (m_childIndex < children.size()) >@@ -117,15 +117,15 @@ public: > return 0; > } > >- bool isEmptyAreaEnough(size_t rowSpan, size_t columnSpan) const >+ bool isEmptyAreaEnough(unsigned rowSpan, unsigned columnSpan) const > { > // Ignore cells outside current grid as we will grow it later if needed. >- size_t maxRows = std::min(m_rowIndex + rowSpan, m_grid.size()); >- size_t maxColumns = std::min(m_columnIndex + columnSpan, m_grid[0].size()); >+ unsigned maxRows = std::min<unsigned>(m_rowIndex + rowSpan, m_grid.size()); >+ unsigned maxColumns = std::min<unsigned>(m_columnIndex + columnSpan, m_grid[0].size()); > > // This adds a O(N^2) behavior that shouldn't be a big deal as we expect spanning areas to be small. >- for (size_t row = m_rowIndex; row < maxRows; ++row) { >- for (size_t column = m_columnIndex; column < maxColumns; ++column) { >+ for (unsigned row = m_rowIndex; row < maxRows; ++row) { >+ for (unsigned column = m_columnIndex; column < maxColumns; ++column) { > const Vector<RenderBox*>& children = m_grid[row][column]; > if (!children.isEmpty()) > return false; >@@ -135,18 +135,18 @@ public: > return true; > } > >- std::unique_ptr<GridCoordinate> nextEmptyGridArea(size_t fixedTrackSpan, size_t varyingTrackSpan) >+ std::unique_ptr<GridCoordinate> nextEmptyGridArea(unsigned fixedTrackSpan, unsigned varyingTrackSpan) > { > ASSERT(fixedTrackSpan >= 1 && varyingTrackSpan >= 1); > > if (m_grid.isEmpty()) > return nullptr; > >- size_t rowSpan = (m_direction == ForColumns) ? varyingTrackSpan : fixedTrackSpan; >- size_t columnSpan = (m_direction == ForColumns) ? fixedTrackSpan : varyingTrackSpan; >+ unsigned rowSpan = (m_direction == ForColumns) ? varyingTrackSpan : fixedTrackSpan; >+ unsigned columnSpan = (m_direction == ForColumns) ? fixedTrackSpan : varyingTrackSpan; > >- size_t& varyingTrackIndex = (m_direction == ForColumns) ? m_rowIndex : m_columnIndex; >- const size_t endOfVaryingTrackIndex = (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); >+ unsigned& varyingTrackIndex = (m_direction == ForColumns) ? m_rowIndex : m_columnIndex; >+ const unsigned endOfVaryingTrackIndex = (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); > for (; varyingTrackIndex < endOfVaryingTrackIndex; ++varyingTrackIndex) { > if (isEmptyAreaEnough(rowSpan, columnSpan)) { > std::unique_ptr<GridCoordinate> result = std::make_unique<GridCoordinate>(GridSpan(m_rowIndex, m_rowIndex + rowSpan - 1), GridSpan(m_columnIndex, m_columnIndex + columnSpan - 1)); >@@ -161,15 +161,15 @@ public: > private: > const Vector<Vector<Vector<RenderBox*, 1>>>& m_grid; > GridTrackSizingDirection m_direction; >- size_t m_rowIndex; >- size_t m_columnIndex; >- size_t m_childIndex; >+ unsigned m_rowIndex; >+ unsigned m_columnIndex; >+ unsigned m_childIndex; > }; > > class RenderGrid::GridSizingData { > WTF_MAKE_NONCOPYABLE(GridSizingData); > public: >- GridSizingData(size_t gridColumnCount, size_t gridRowCount) >+ GridSizingData(unsigned gridColumnCount, unsigned gridRowCount) > : columnTracks(gridColumnCount) > , rowTracks(gridRowCount) > { >@@ -177,7 +177,7 @@ public: > > Vector<GridTrack> columnTracks; > Vector<GridTrack> rowTracks; >- Vector<size_t> contentSizedTracksIndex; >+ Vector<unsigned> contentSizedTracksIndex; > > // Performance optimization: hold onto these Vectors until the end of Layout to avoid repeated malloc / free. > Vector<LayoutUnit> distributeTrackVector; >@@ -298,11 +298,11 @@ bool RenderGrid::gridElementIsShrinkToFit() > void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData& sizingData, LayoutUnit& availableLogicalSpace) > { > Vector<GridTrack>& tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks; >- Vector<size_t> flexibleSizedTracksIndex; >+ Vector<unsigned> flexibleSizedTracksIndex; > sizingData.contentSizedTracksIndex.shrink(0); > > // 1. Initialize per Grid track variables. >- for (size_t i = 0; i < tracks.size(); ++i) { >+ for (unsigned i = 0; i < tracks.size(); ++i) { > GridTrack& track = tracks[i]; > const GridTrackSize& trackSize = gridTrackSize(direction, i); > const GridLength& minTrackBreadth = trackSize.minTrackBreadth(); >@@ -337,9 +337,9 @@ void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection directi > // 3. Grow all Grid tracks in GridTracks from their UsedBreadth up to their MaxBreadth value until > // availableLogicalSpace (RemainingSpace in the specs) is exhausted. > if (!hasUndefinedRemainingSpace) { >- const size_t tracksSize = tracks.size(); >+ const unsigned tracksSize = tracks.size(); > Vector<GridTrack*> tracksForDistribution(tracksSize); >- for (size_t i = 0; i < tracksSize; ++i) >+ for (unsigned i = 0; i < tracksSize; ++i) > tracksForDistribution[i] = tracks.data() + i; > > distributeSpaceToTracks(tracksForDistribution, 0, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, sizingData, availableLogicalSpace); >@@ -361,7 +361,7 @@ void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection directi > normalizedFractionBreadth = std::max(normalizedFractionBreadth, tracks[trackIndex].m_usedBreadth / trackSize.maxTrackBreadth().flex()); > } > >- for (size_t i = 0; i < flexibleSizedTracksIndex.size(); ++i) { >+ for (unsigned i = 0; i < flexibleSizedTracksIndex.size(); ++i) { > GridIterator iterator(m_grid, direction, flexibleSizedTracksIndex[i]); > while (RenderBox* gridItem = iterator.nextGridItem()) { > const GridCoordinate coordinate = cachedGridCoordinate(*gridItem); >@@ -467,7 +467,7 @@ double RenderGrid::computeNormalizedFractionBreadth(Vector<GridTrack>& tracks, c > return availableLogicalSpaceIgnoringFractionTracks / accumulatedFractions; > } > >-GridTrackSize RenderGrid::gridTrackSize(GridTrackSizingDirection direction, size_t i) const >+GridTrackSize RenderGrid::gridTrackSize(GridTrackSizingDirection direction, unsigned i) const > { > bool isForColumns = (direction == ForColumns); > auto& trackStyles = isForColumns ? style().gridColumns() : style().gridRows(); >@@ -553,7 +553,7 @@ public: > private: > std::reference_wrapper<RenderBox> m_gridItem; > GridCoordinate m_coordinate; >- size_t m_span; >+ unsigned m_span; > }; > > void RenderGrid::resolveContentBasedTrackSizingFunctions(GridTrackSizingDirection direction, GridSizingData& sizingData) >@@ -637,10 +637,10 @@ void RenderGrid::distributeSpaceToTracks(Vector<GridTrack*>& tracks, Vector<size > ASSERT(availableLogicalSpace > 0); > std::sort(tracks.begin(), tracks.end(), sortByGridTrackGrowthPotential); > >- size_t tracksSize = tracks.size(); >+ unsigned tracksSize = tracks.size(); > sizingData.distributeTrackVector.resize(tracksSize); > >- for (size_t i = 0; i < tracksSize; ++i) { >+ for (unsigned i = 0; i < tracksSize; ++i) { > GridTrack& track = *tracks[i]; > LayoutUnit trackBreadth = (tracks[i]->*trackGetter)(); > bool infiniteGrowthPotential = track.m_maxBreadth == infinity; >@@ -657,8 +657,8 @@ void RenderGrid::distributeSpaceToTracks(Vector<GridTrack*>& tracks, Vector<size > } > > if (availableLogicalSpace > 0 && growAboveMaxBreadthTrackIndexes) { >- size_t indexesSize = growAboveMaxBreadthTrackIndexes->size(); >- size_t tracksGrowingAboveMaxBreadthSize = indexesSize ? indexesSize : tracksSize; >+ unsigned indexesSize = growAboveMaxBreadthTrackIndexes->size(); >+ unsigned tracksGrowingAboveMaxBreadthSize = indexesSize ? indexesSize : tracksSize; > // If we have a non-null empty vector of track indexes to grow above max breadth means that we should grow all > // affected tracks. > for (size_t i = 0; i < tracksGrowingAboveMaxBreadthSize; ++i) { >@@ -669,7 +669,7 @@ void RenderGrid::distributeSpaceToTracks(Vector<GridTrack*>& tracks, Vector<size > } > } > >- for (size_t i = 0; i < tracksSize; ++i) { >+ for (unsigned i = 0; i < tracksSize; ++i) { > LayoutUnit growth = sizingData.distributeTrackVector[i] - (tracks[i]->*trackGetter)(); > if (growth >= 0) > (tracks[i]->*trackGrowthFunction)(growth); >@@ -679,7 +679,7 @@ void RenderGrid::distributeSpaceToTracks(Vector<GridTrack*>& tracks, Vector<size > #ifndef NDEBUG > bool RenderGrid::tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection direction, const Vector<GridTrack>& tracks) > { >- for (size_t i = 0; i < tracks.size(); ++i) { >+ for (unsigned i = 0; i < tracks.size(); ++i) { > const GridTrackSize& trackSize = gridTrackSize(direction, i); > const GridLength& minTrackBreadth = trackSize.minTrackBreadth(); > if (computeUsedBreadthOfMinLength(direction, minTrackBreadth) > tracks[i].m_usedBreadth) >@@ -689,17 +689,17 @@ bool RenderGrid::tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection dire > } > #endif > >-void RenderGrid::ensureGridSize(size_t maximumRowIndex, size_t maximumColumnIndex) >+void RenderGrid::ensureGridSize(unsigned maximumRowIndex, unsigned maximumColumnIndex) > { >- const size_t oldRowCount = gridRowCount(); >+ const unsigned oldRowCount = gridRowCount(); > if (maximumRowIndex >= oldRowCount) { > m_grid.grow(maximumRowIndex + 1); >- for (size_t row = oldRowCount; row < gridRowCount(); ++row) >+ for (unsigned row = oldRowCount; row < gridRowCount(); ++row) > m_grid[row].grow(gridColumnCount()); > } > > if (maximumColumnIndex >= gridColumnCount()) { >- for (size_t row = 0; row < gridRowCount(); ++row) >+ for (unsigned row = 0; row < gridRowCount(); ++row) > m_grid[row].grow(maximumColumnIndex + 1); > } > } >@@ -758,8 +758,8 @@ void RenderGrid::placeItemsOnGrid() > void RenderGrid::populateExplicitGridAndOrderIterator() > { > OrderIteratorPopulator populator(m_orderIterator); >- size_t maximumRowIndex = std::max<size_t>(1, GridResolvedPosition::explicitGridRowCount(style())); >- size_t maximumColumnIndex = std::max<size_t>(1, GridResolvedPosition::explicitGridColumnCount(style())); >+ unsigned maximumRowIndex = std::max<unsigned>(1, GridResolvedPosition::explicitGridRowCount(style())); >+ unsigned maximumColumnIndex = std::max<unsigned>(1, GridResolvedPosition::explicitGridColumnCount(style())); > > for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) { > populator.collectChild(*child); >@@ -774,7 +774,7 @@ void RenderGrid::populateExplicitGridAndOrderIterator() > else { > // Grow the grid for items with a definite row span, getting the largest such span. > GridSpan positions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(style(), *child, ForRows, GridResolvedPosition(0)); >- maximumRowIndex = std::max<size_t>(maximumRowIndex, positions.resolvedFinalPosition.next().toInt()); >+ maximumRowIndex = std::max(maximumRowIndex, positions.resolvedFinalPosition.next().toInt()); > } > > if (columnPositions) >@@ -782,7 +782,7 @@ void RenderGrid::populateExplicitGridAndOrderIterator() > else { > // Grow the grid for items with a definite column span, getting the largest such span. > GridSpan positions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(style(), *child, ForColumns, GridResolvedPosition(0)); >- maximumColumnIndex = std::max<size_t>(maximumColumnIndex, positions.resolvedFinalPosition.next().toInt()); >+ maximumColumnIndex = std::max(maximumColumnIndex, positions.resolvedFinalPosition.next().toInt()); > } > } > >@@ -794,7 +794,7 @@ void RenderGrid::populateExplicitGridAndOrderIterator() > std::unique_ptr<GridCoordinate> RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(const RenderBox& gridItem, GridTrackSizingDirection specifiedDirection, const GridSpan& specifiedPositions) const > { > GridTrackSizingDirection crossDirection = specifiedDirection == ForColumns ? ForRows : ForColumns; >- const size_t endOfCrossDirection = crossDirection == ForColumns ? gridColumnCount() : gridRowCount(); >+ const unsigned endOfCrossDirection = crossDirection == ForColumns ? gridColumnCount() : gridRowCount(); > GridSpan crossDirectionPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(style(), gridItem, crossDirection, GridResolvedPosition(endOfCrossDirection)); > return std::make_unique<GridCoordinate>(specifiedDirection == ForColumns ? crossDirectionPositions : specifiedPositions, specifiedDirection == ForColumns ? specifiedPositions : crossDirectionPositions); > } >@@ -834,9 +834,9 @@ void RenderGrid::placeAutoMajorAxisItemOnGrid(RenderBox& gridItem, AutoPlacement > ASSERT(!GridResolvedPosition::resolveGridPositionsFromStyle(style(), gridItem, autoPlacementMajorAxisDirection())); > GridSpan majorAxisPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(style(), gridItem, autoPlacementMajorAxisDirection(), GridResolvedPosition(0)); > >- const size_t endOfMajorAxis = (autoPlacementMajorAxisDirection() == ForColumns) ? gridColumnCount() : gridRowCount(); >- size_t majorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.second : autoPlacementCursor.first; >- size_t minorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.first : autoPlacementCursor.second; >+ const unsigned endOfMajorAxis = (autoPlacementMajorAxisDirection() == ForColumns) ? gridColumnCount() : gridRowCount(); >+ unsigned majorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.second : autoPlacementCursor.first; >+ unsigned minorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.first : autoPlacementCursor.second; > > std::unique_ptr<GridCoordinate> emptyGridArea; > if (minorAxisPositions) { >@@ -854,14 +854,14 @@ void RenderGrid::placeAutoMajorAxisItemOnGrid(RenderBox& gridItem, AutoPlacement > } else { > GridSpan minorAxisPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(style(), gridItem, autoPlacementMinorAxisDirection(), GridResolvedPosition(0)); > >- for (size_t majorAxisIndex = majorAxisAutoPlacementCursor; majorAxisIndex < endOfMajorAxis; ++majorAxisIndex) { >+ for (unsigned majorAxisIndex = majorAxisAutoPlacementCursor; majorAxisIndex < endOfMajorAxis; ++majorAxisIndex) { > GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), majorAxisIndex, minorAxisAutoPlacementCursor); > emptyGridArea = iterator.nextEmptyGridArea(majorAxisPositions.integerSpan(), minorAxisPositions.integerSpan()); > > if (emptyGridArea) { > // Check that it fits in the minor axis direction, as we shouldn't grow in that direction here (it was already managed in populateExplicitGridAndOrderIterator()). > GridResolvedPosition minorAxisFinalPositionIndex = autoPlacementMinorAxisDirection() == ForColumns ? emptyGridArea->columns.resolvedFinalPosition : emptyGridArea->rows.resolvedFinalPosition; >- const size_t endOfMinorAxis = autoPlacementMinorAxisDirection() == ForColumns ? gridColumnCount() : gridRowCount(); >+ const unsigned endOfMinorAxis = autoPlacementMinorAxisDirection() == ForColumns ? gridColumnCount() : gridRowCount(); > if (minorAxisFinalPositionIndex.toInt() < endOfMinorAxis) > break; > >@@ -969,12 +969,12 @@ void RenderGrid::populateGridPositions(const GridSizingData& sizingData) > { > m_columnPositions.resizeToFit(sizingData.columnTracks.size() + 1); > m_columnPositions[0] = borderAndPaddingStart(); >- for (size_t i = 0; i < m_columnPositions.size() - 1; ++i) >+ for (unsigned i = 0; i < m_columnPositions.size() - 1; ++i) > m_columnPositions[i + 1] = m_columnPositions[i] + sizingData.columnTracks[i].m_usedBreadth; > > m_rowPositions.resizeToFit(sizingData.rowTracks.size() + 1); > m_rowPositions[0] = borderAndPaddingBefore(); >- for (size_t i = 0; i < m_rowPositions.size() - 1; ++i) >+ for (unsigned i = 0; i < m_rowPositions.size() - 1; ++i) > m_rowPositions[i + 1] = m_rowPositions[i] + sizingData.rowTracks[i].m_usedBreadth; > } > >diff --git a/Source/WebCore/rendering/RenderGrid.h b/Source/WebCore/rendering/RenderGrid.h >index bb3494aa4978caee4e418ac6014815c558184343..707fae2f54356d4583f4295e9c7050665963b276 100644 >--- a/Source/WebCore/rendering/RenderGrid.h >+++ b/Source/WebCore/rendering/RenderGrid.h >@@ -71,14 +71,14 @@ private: > LayoutUnit computeUsedBreadthOfSpecifiedLength(GridTrackSizingDirection, const Length&) const; > void resolveContentBasedTrackSizingFunctions(GridTrackSizingDirection, GridSizingData&); > >- void ensureGridSize(size_t maximumRowIndex, size_t maximumColumnIndex); >+ void ensureGridSize(unsigned maximumRowIndex, unsigned maximumColumnIndex); > void insertItemIntoGrid(RenderBox&, const GridCoordinate&); > void placeItemsOnGrid(); > void populateExplicitGridAndOrderIterator(); > std::unique_ptr<GridCoordinate> createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(const RenderBox&, GridTrackSizingDirection, const GridSpan&) const; > void placeSpecifiedMajorAxisItemsOnGrid(const Vector<RenderBox*>&); > void placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>&); >- typedef std::pair<size_t, size_t> AutoPlacementCursor; >+ typedef std::pair<unsigned, unsigned> AutoPlacementCursor; > void placeAutoMajorAxisItemOnGrid(RenderBox&, AutoPlacementCursor&); > GridTrackSizingDirection autoPlacementMajorAxisDirection() const; > GridTrackSizingDirection autoPlacementMinorAxisDirection() const; >@@ -96,7 +96,7 @@ private: > > double computeNormalizedFractionBreadth(Vector<GridTrack>&, const GridSpan& tracksSpan, GridTrackSizingDirection, LayoutUnit availableLogicalSpace) const; > >- GridTrackSize gridTrackSize(GridTrackSizingDirection, size_t) const; >+ GridTrackSize gridTrackSize(GridTrackSizingDirection, unsigned) const; > > LayoutUnit logicalContentHeightForChild(RenderBox&, Vector<GridTrack>&); > LayoutUnit minContentForChild(RenderBox&, GridTrackSizingDirection, Vector<GridTrack>& columnTracks); >@@ -114,12 +114,12 @@ private: > > bool gridWasPopulated() const { return !m_grid.isEmpty() && !m_grid[0].isEmpty(); } > >- size_t gridColumnCount() const >+ unsigned gridColumnCount() const > { > ASSERT(gridWasPopulated()); > return m_grid[0].size(); > } >- size_t gridRowCount() const >+ unsigned gridRowCount() const > { > ASSERT(gridWasPopulated()); > return m_grid.size(); >diff --git a/Source/WebCore/rendering/style/GridCoordinate.h b/Source/WebCore/rendering/style/GridCoordinate.h >index 92f96e645faeafccf518628ccc7fcaac561cfcd6..33fceb51e4227ec86cd8527c3ba66a490323fda9 100644 >--- a/Source/WebCore/rendering/style/GridCoordinate.h >+++ b/Source/WebCore/rendering/style/GridCoordinate.h >@@ -41,7 +41,7 @@ > namespace WebCore { > > // Recommended maximum size for both explicit and implicit grids. >-const size_t kGridMaxTracks = 1000000; >+const unsigned kGridMaxTracks = 1000000; > > // A span in a single direction (either rows or columns). Note that |resolvedInitialPosition| > // and |resolvedFinalPosition| are grid areas' indexes, NOT grid lines'. Iterating over the >@@ -60,7 +60,7 @@ public: > return resolvedInitialPosition == o.resolvedInitialPosition && resolvedFinalPosition == o.resolvedFinalPosition; > } > >- size_t integerSpan() const >+ unsigned integerSpan() const > { > return resolvedFinalPosition.toInt() - resolvedInitialPosition.toInt() + 1; > } >diff --git a/Source/WebCore/rendering/style/GridResolvedPosition.cpp b/Source/WebCore/rendering/style/GridResolvedPosition.cpp >index 0f362aefa1baf61114ef4b448176707b2be2530c..ccdc2a3dc6da2d6534a7eb63509e6b43baa1fd71 100644 >--- a/Source/WebCore/rendering/style/GridResolvedPosition.cpp >+++ b/Source/WebCore/rendering/style/GridResolvedPosition.cpp >@@ -48,17 +48,17 @@ static inline bool isStartSide(GridPositionSide side) > return side == ColumnStartSide || side == RowStartSide; > } > >-size_t GridResolvedPosition::explicitGridColumnCount(const RenderStyle& gridContainerStyle) >+unsigned GridResolvedPosition::explicitGridColumnCount(const RenderStyle& gridContainerStyle) > { >- return std::min(gridContainerStyle.gridColumns().size(), kGridMaxTracks); >+ return std::min<unsigned>(gridContainerStyle.gridColumns().size(), kGridMaxTracks); > } > >-size_t GridResolvedPosition::explicitGridRowCount(const RenderStyle& gridContainerStyle) >+unsigned GridResolvedPosition::explicitGridRowCount(const RenderStyle& gridContainerStyle) > { >- return std::min(gridContainerStyle.gridRows().size(), kGridMaxTracks); >+ return std::min<unsigned>(gridContainerStyle.gridRows().size(), kGridMaxTracks); > } > >-static size_t explicitGridSizeForSide(const RenderStyle& gridContainerStyle, GridPositionSide side) >+static unsigned explicitGridSizeForSide(const RenderStyle& gridContainerStyle, GridPositionSide side) > { > return isColumnSide(side) ? GridResolvedPosition::explicitGridColumnCount(gridContainerStyle) : GridResolvedPosition::explicitGridRowCount(gridContainerStyle); > } >@@ -175,15 +175,15 @@ GridResolvedPosition GridResolvedPosition::resolveNamedGridLinePositionFromStyle > if (it == gridLinesNames.end()) { > if (position.isPositive()) > return 0; >- const size_t lastLine = explicitGridSizeForSide(gridContainerStyle, side); >+ const unsigned lastLine = explicitGridSizeForSide(gridContainerStyle, side); > return GridResolvedPosition::adjustGridPositionForSide(lastLine, side); > } > >- size_t namedGridLineIndex; >+ unsigned namedGridLineIndex; > if (position.isPositive()) >- namedGridLineIndex = std::min<size_t>(position.integerPosition(), it->value.size()) - 1; >+ namedGridLineIndex = std::min<unsigned>(position.integerPosition(), it->value.size()) - 1; > else >- namedGridLineIndex = std::max<int>(it->value.size() - abs(position.integerPosition()), 0); >+ namedGridLineIndex = std::max<int>(0, it->value.size() - abs(position.integerPosition())); > return GridResolvedPosition::adjustGridPositionForSide(it->value[namedGridLineIndex], side); > } > >@@ -200,8 +200,8 @@ GridResolvedPosition GridResolvedPosition::resolveGridPositionFromStyle(const Re > if (position.isPositive()) > return GridResolvedPosition::adjustGridPositionForSide(position.integerPosition() - 1, side); > >- size_t resolvedPosition = abs(position.integerPosition()) - 1; >- const size_t endOfTrack = explicitGridSizeForSide(gridContainerStyle, side); >+ unsigned resolvedPosition = abs(position.integerPosition()) - 1; >+ const unsigned endOfTrack = explicitGridSizeForSide(gridContainerStyle, side); > > // Per http://lists.w3.org/Archives/Public/www-style/2013Mar/0589.html, we clamp negative value to the first line. > if (endOfTrack < resolvedPosition) >@@ -259,9 +259,9 @@ std::unique_ptr<GridSpan> GridResolvedPosition::resolveGridPositionAgainstOpposi > > // 'span 1' is contained inside a single grid track regardless of the direction. > // That's why the CSS span value is one more than the offset we apply. >- size_t positionOffset = position.spanPosition() - 1; >+ unsigned positionOffset = position.spanPosition() - 1; > if (isStartSide(side)) { >- size_t initialResolvedPosition = std::max<int>(0, resolvedOppositePosition.toInt() - positionOffset); >+ unsigned initialResolvedPosition = std::max<int>(0, resolvedOppositePosition.toInt() - positionOffset); > return std::make_unique<GridSpan>(initialResolvedPosition, resolvedOppositePosition); > } > >@@ -289,13 +289,13 @@ std::unique_ptr<GridSpan> GridResolvedPosition::resolveNamedGridLinePositionAgai > return resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition(resolvedOppositePosition, position, it->value); > } > >-static inline size_t firstNamedGridLineBeforePosition(size_t position, const Vector<size_t>& gridLines) >+static inline unsigned firstNamedGridLineBeforePosition(unsigned position, const Vector<unsigned>& gridLines) > { > // The grid line inequality needs to be strict (which doesn't match the after / end case) because |position| is > // already converted to an index in our grid representation (ie one was removed from the grid line to account for > // the side). >- size_t firstLineBeforePositionIndex = 0; >- const size_t* firstLineBeforePosition = std::lower_bound(gridLines.begin(), gridLines.end(), position); >+ unsigned firstLineBeforePositionIndex = 0; >+ const unsigned* firstLineBeforePosition = std::lower_bound(gridLines.begin(), gridLines.end(), position); > if (firstLineBeforePosition != gridLines.end()) { > if (*firstLineBeforePosition > position && firstLineBeforePosition != gridLines.begin()) > --firstLineBeforePosition; >@@ -305,23 +305,24 @@ static inline size_t firstNamedGridLineBeforePosition(size_t position, const Vec > return firstLineBeforePositionIndex; > } > >-std::unique_ptr<GridSpan> GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition& resolvedOppositePosition, const GridPosition& position, const Vector<size_t>& gridLines) >+std::unique_ptr<GridSpan> GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition& resolvedOppositePosition, const GridPosition& position, const Vector<unsigned>& gridLines) > { >- size_t gridLineIndex = std::max<int>(0, firstNamedGridLineBeforePosition(resolvedOppositePosition.toInt(), gridLines) - position.spanPosition() + 1); >+ unsigned gridLineIndex = std::max<int>(0, firstNamedGridLineBeforePosition(resolvedOppositePosition.toInt(), gridLines) - position.spanPosition() + 1); > GridResolvedPosition resolvedGridLinePosition = GridResolvedPosition(gridLines[gridLineIndex]); > if (resolvedGridLinePosition > resolvedOppositePosition) > resolvedGridLinePosition = resolvedOppositePosition; > return std::make_unique<GridSpan>(resolvedGridLinePosition, resolvedOppositePosition); > } > >-std::unique_ptr<GridSpan> GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition& resolvedOppositePosition, const GridPosition& position, const Vector<size_t>& gridLines) >+std::unique_ptr<GridSpan> GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition& resolvedOppositePosition, const GridPosition& position, const Vector<unsigned>& gridLines) > { >- size_t firstLineAfterOppositePositionIndex = gridLines.size() - 1; >- const size_t* firstLineAfterOppositePosition = std::upper_bound(gridLines.begin(), gridLines.end(), resolvedOppositePosition); >+ ASSERT(gridLines.size()); >+ unsigned firstLineAfterOppositePositionIndex = gridLines.size() - 1; >+ const unsigned* firstLineAfterOppositePosition = std::upper_bound(gridLines.begin(), gridLines.end(), resolvedOppositePosition); > if (firstLineAfterOppositePosition != gridLines.end()) > firstLineAfterOppositePositionIndex = firstLineAfterOppositePosition - gridLines.begin(); > >- size_t gridLineIndex = std::min(gridLines.size() - 1, firstLineAfterOppositePositionIndex + position.spanPosition() - 1); >+ unsigned gridLineIndex = std::min<unsigned>(gridLines.size() - 1, firstLineAfterOppositePositionIndex + position.spanPosition() - 1); > GridResolvedPosition resolvedGridLinePosition = GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide(gridLines[gridLineIndex]); > if (resolvedGridLinePosition < resolvedOppositePosition) > resolvedGridLinePosition = resolvedOppositePosition; >diff --git a/Source/WebCore/rendering/style/GridResolvedPosition.h b/Source/WebCore/rendering/style/GridResolvedPosition.h >index 8fb143f21f56ef5d36666bbae1c21ed0598a9787..95556cdebebbbdc4b71ed2c41df592ab39e3bf59 100644 >--- a/Source/WebCore/rendering/style/GridResolvedPosition.h >+++ b/Source/WebCore/rendering/style/GridResolvedPosition.h >@@ -54,15 +54,15 @@ enum GridTrackSizingDirection { > }; > > // This class represents an index into one of the dimensions of the grid array. >-// Wraps a size_t integer just for the purpose of knowing what we manipulate in the grid code. >+// Wraps an unsigned integer just for the purpose of knowing what we manipulate in the grid code. > class GridResolvedPosition { > public: >- static GridResolvedPosition adjustGridPositionForRowEndColumnEndSide(size_t resolvedPosition) >+ static GridResolvedPosition adjustGridPositionForRowEndColumnEndSide(unsigned resolvedPosition) > { > return resolvedPosition ? GridResolvedPosition(resolvedPosition - 1) : GridResolvedPosition(0); > } > >- static GridResolvedPosition adjustGridPositionForSide(size_t resolvedPosition, GridPositionSide side) >+ static GridResolvedPosition adjustGridPositionForSide(unsigned resolvedPosition, GridPositionSide side) > { > // An item finishing on the N-th line belongs to the N-1-th cell. > if (side == ColumnEndSide || side == RowEndSide) >@@ -79,10 +79,10 @@ public: > static GridResolvedPosition resolveGridPositionFromStyle(const RenderStyle&, const GridPosition&, GridPositionSide); > static std::unique_ptr<GridSpan> resolveGridPositionAgainstOppositePosition(const RenderStyle&, const GridResolvedPosition&, const GridPosition&, GridPositionSide); > static std::unique_ptr<GridSpan> resolveNamedGridLinePositionAgainstOppositePosition(const RenderStyle&, const GridResolvedPosition&, const GridPosition&, GridPositionSide); >- static std::unique_ptr<GridSpan> resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition&, const GridPosition&, const Vector<size_t>&); >- static std::unique_ptr<GridSpan> resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition&, const GridPosition&, const Vector<size_t>&); >+ static std::unique_ptr<GridSpan> resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition&, const GridPosition&, const Vector<unsigned>&); >+ static std::unique_ptr<GridSpan> resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition(const GridResolvedPosition&, const GridPosition&, const Vector<unsigned>&); > >- GridResolvedPosition(size_t position) >+ GridResolvedPosition(unsigned position) > : m_integerPosition(position) > { > } >@@ -90,7 +90,7 @@ public: > GridResolvedPosition(const GridPosition& position, GridPositionSide side) > { > ASSERT(position.integerPosition()); >- size_t integerPosition = position.integerPosition() - 1; >+ unsigned integerPosition = position.integerPosition() - 1; > > m_integerPosition = adjustGridPositionForSide(integerPosition, side).m_integerPosition; > } >@@ -136,7 +136,7 @@ public: > return m_integerPosition >= other.m_integerPosition; > } > >- size_t toInt() const >+ unsigned toInt() const > { > return m_integerPosition; > } >@@ -146,12 +146,12 @@ public: > return GridResolvedPosition(m_integerPosition + 1); > } > >- static size_t explicitGridColumnCount(const RenderStyle&); >- static size_t explicitGridRowCount(const RenderStyle&); >+ static unsigned explicitGridColumnCount(const RenderStyle&); >+ static unsigned explicitGridRowCount(const RenderStyle&); > > private: > >- size_t m_integerPosition; >+ unsigned m_integerPosition; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/rendering/style/StyleGridData.h b/Source/WebCore/rendering/style/StyleGridData.h >index 890822a3646b8975cb731de1ace3a1ded356afcd..beb4eff86175fbadbe1eb3ccb231634021e17dfd 100644 >--- a/Source/WebCore/rendering/style/StyleGridData.h >+++ b/Source/WebCore/rendering/style/StyleGridData.h >@@ -38,8 +38,8 @@ > > namespace WebCore { > >-typedef HashMap<String, Vector<size_t>> NamedGridLinesMap; >-typedef HashMap<size_t, Vector<String>, WTF::IntHash<size_t>, WTF::UnsignedWithZeroKeyHashTraits<size_t>> OrderedNamedGridLinesMap; >+typedef HashMap<String, Vector<unsigned>> NamedGridLinesMap; >+typedef HashMap<unsigned, Vector<String>, WTF::IntHash<unsigned>, WTF::UnsignedWithZeroKeyHashTraits<unsigned>> OrderedNamedGridLinesMap; > > class StyleGridData : public RefCounted<StyleGridData> { > public: >@@ -75,8 +75,8 @@ public: > NamedGridAreaMap m_namedGridArea; > // Because m_namedGridArea doesn't store the unnamed grid areas, we need to keep track > // of the explicit grid size defined by both named and unnamed grid areas. >- size_t m_namedGridAreaRowCount; >- size_t m_namedGridAreaColumnCount; >+ unsigned m_namedGridAreaRowCount; >+ unsigned m_namedGridAreaColumnCount; > > private: > StyleGridData();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 136218
:
241434
|
241483