No subject


Fri Mar 7 15:32:22 PST 2014


No new tests as it is already covered by current tests
(fast/css-grid-layout/).

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeNormalizedFractionBreadth): Change loop to
ranged-based for.
(WebCore::RenderGrid::insertItemIntoGrid): Ditto.
(WebCore::RenderGrid::gridAreaBreadthForChild): Ditto.
* rendering/style/GridCoordinate.h: Define GridSpan::iterator.
(WebCore::GridSpan::begin): Return resolved initial position.
(WebCore::GridSpan::end): Return next to resolved final position.
* rendering/style/GridResolvedPosition.h:
(WebCore::GridResolvedPosition::operator*): Add operator required by
range-based for loops.
(WebCore::GridResolvedPosition::operator!=3D): Add not equal operator.</p=
re>

<h3>Modified Paths</h3>
<ul>
<li><a href=3D"#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeL=
og</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/We=
bCore/rendering/RenderGrid.cpp</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingstyleGridCoordinateh">trunk/So=
urce/WebCore/rendering/style/GridCoordinate.h</a></li>
<li><a href=3D"#trunkSourceWebCorerenderingstyleGridResolvedPositionh">tr=
unk/Source/WebCore/rendering/style/GridResolvedPosition.h</a></li>
</ul>

</div>
<div id=3D"patch">
<h3>Diff</h3>
<a id=3D"trunkSourceWebCoreChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (1701=
81 =3D> 170182)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/ChangeLog	2014-06-20 07:55:=
37 UTC (rev 170181)
+++ trunk/Source/WebCore/ChangeLog	2014-06-20 08:28:59 UTC (rev 170182)
</span><span class=3D"lines">@@ -1,3 +1,31 @@
</span><ins>+2014-06-20  Manuel Rego Casasnovas  &lt;rego at igalia.com&gt;
+
+        [CSS Grid Layout] Add GridSpan::iterator
+        https://bugs.webkit.org/show_bug.cgi?id=3D134058
+
+        Reviewed by Bem Jones-Bey.
+
+        Once that GridResolvedPosition has been introduced in r169934, t=
his
+        patch adds a GridSpan::iterator which allows to simplify the loo=
ps over
+        GridResolvedPositions.
+        From now on we could use range-based for loops.
+
+        No new tests as it is already covered by current tests
+        (fast/css-grid-layout/).
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::computeNormalizedFractionBreadth): Change =
loop to
+        ranged-based for.
+        (WebCore::RenderGrid::insertItemIntoGrid): Ditto.
+        (WebCore::RenderGrid::gridAreaBreadthForChild): Ditto.
+        * rendering/style/GridCoordinate.h: Define GridSpan::iterator.
+        (WebCore::GridSpan::begin): Return resolved initial position.
+        (WebCore::GridSpan::end): Return next to resolved final position=
.
+        * rendering/style/GridResolvedPosition.h:
+        (WebCore::GridResolvedPosition::operator*): Add operator require=
d by
+        range-based for loops.
+        (WebCore::GridResolvedPosition::operator!=3D): Add not equal ope=
rator.
+
</ins><span class=3D"cx"> 2014-06-20  Carlos Garcia Campos  &lt;cgarcia at i=
galia.com&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         Unreviewed. Fix GTK+ debug build after=
 r170174.
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/Rende=
rGrid.cpp (170181 =3D> 170182)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp	20=
14-06-20 07:55:37 UTC (rev 170181)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp	2014-06-20 08:28:59 UTC=
 (rev 170182)
</span><span class=3D"lines">@@ -401,7 +401,7 @@
</span><span class=3D"cx">     // |availableLogicalSpace| already account=
s for the used breadths so no need to remove it here.
</span><span class=3D"cx">=20
</span><span class=3D"cx">     Vector&lt;GridTrackForNormalization&gt; tr=
acksForNormalization;
</span><del>-    for (GridResolvedPosition position =3D tracksSpan.resolv=
edInitialPosition; position &lt;=3D tracksSpan.resolvedFinalPosition; ++p=
osition) {
</del><ins>+    for (auto position : tracksSpan) {
</ins><span class=3D"cx">         const GridTrackSize&amp; trackSize =3D =
gridTrackSize(direction, position.toInt());
</span><span class=3D"cx">         if (!trackSize.maxTrackBreadth().isFle=
x())
</span><span class=3D"cx">             continue;
</span><span class=3D"lines">@@ -623,8 +623,8 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> void RenderGrid::insertItemIntoGrid(RenderBox*=
 child, const GridCoordinate&amp; coordinate)
</span><span class=3D"cx"> {
</span><del>-    for (GridResolvedPosition row =3D coordinate.rows.resolv=
edInitialPosition; row &lt;=3D coordinate.rows.resolvedFinalPosition; ++r=
ow) {
-        for (GridResolvedPosition column =3D coordinate.columns.resolved=
InitialPosition; column &lt;=3D coordinate.columns.resolvedFinalPosition;=
 ++column)
</del><ins>+    for (auto row : coordinate.rows) {
+        for (auto column : coordinate.columns)
</ins><span class=3D"cx">             m_grid[row.toInt()][column.toInt()]=
.append(child);
</span><span class=3D"cx">     }
</span><span class=3D"cx">     m_gridItemCoordinate.set(child, coordinate=
);
</span><span class=3D"lines">@@ -837,7 +837,7 @@
</span><span class=3D"cx">     const GridCoordinate&amp; coordinate =3D c=
achedGridCoordinate(child);
</span><span class=3D"cx">     const GridSpan&amp; span =3D (direction =3D=
=3D ForColumns) ? coordinate.columns : coordinate.rows;
</span><span class=3D"cx">     LayoutUnit gridAreaBreadth =3D 0;
</span><del>-    for (GridResolvedPosition trackPosition =3D span.resolve=
dInitialPosition; trackPosition &lt;=3D span.resolvedFinalPosition; ++tra=
ckPosition)
</del><ins>+    for (auto trackPosition : span)
</ins><span class=3D"cx">         gridAreaBreadth +=3D tracks[trackPositi=
on.toInt()].m_usedBreadth;
</span><span class=3D"cx">     return gridAreaBreadth;
</span><span class=3D"cx"> }
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingstyleGridCoordinateh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/style=
/GridCoordinate.h (170181 =3D> 170182)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/style/GridCoordin=
ate.h	2014-06-20 07:55:37 UTC (rev 170181)
+++ trunk/Source/WebCore/rendering/style/GridCoordinate.h	2014-06-20 08:2=
8:59 UTC (rev 170182)
</span><span class=3D"lines">@@ -59,6 +59,18 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx">     GridResolvedPosition resolvedInitialPositi=
on;
</span><span class=3D"cx">     GridResolvedPosition resolvedFinalPosition=
;
</span><ins>+
+    typedef GridResolvedPosition iterator;
+
+    iterator begin() const
+    {
+        return resolvedInitialPosition;
+    }
+
+    iterator end() const
+    {
+        return resolvedFinalPosition.next();
+    }
</ins><span class=3D"cx"> };
</span><span class=3D"cx">=20
</span><span class=3D"cx"> // This represents a grid area that spans in b=
oth rows' and columns' direction.
</span></span></pre></div>
<a id=3D"trunkSourceWebCorerenderingstyleGridResolvedPositionh"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/rendering/style=
/GridResolvedPosition.h (170181 =3D> 170182)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/rendering/style/GridResolve=
dPosition.h	2014-06-20 07:55:37 UTC (rev 170181)
+++ trunk/Source/WebCore/rendering/style/GridResolvedPosition.h	2014-06-2=
0 08:28:59 UTC (rev 170182)
</span><span class=3D"lines">@@ -95,6 +95,11 @@
</span><span class=3D"cx">         m_integerPosition =3D adjustGridPositi=
onForSide(integerPosition, side).m_integerPosition;
</span><span class=3D"cx">     }
</span><span class=3D"cx">=20
</span><ins>+    GridResolvedPosition&amp; operator*()
+    {
+        return *this;
+    }
+
</ins><span class=3D"cx">     GridResolvedPosition&amp; operator++()
</span><span class=3D"cx">     {
</span><span class=3D"cx">         m_integerPosition++;
</span><span class=3D"lines">@@ -106,6 +111,11 @@
</span><span class=3D"cx">         return m_integerPosition =3D=3D other.=
m_integerPosition;
</span><span class=3D"cx">     }
</span><span class=3D"cx">=20
</span><ins>+    bool operator!=3D(const GridResolvedPosition&amp; other)=
 const
+    {
+        return m_integerPosition !=3D other.m_integerPosition;
+    }
+
</ins><span class=3D"cx">     bool operator&lt;(const GridResolvedPositio=
n&amp; other) const
</span><span class=3D"cx">     {
</span><span class=3D"cx">         return m_integerPosition &lt; other.m_=
integerPosition;
</span></span></pre>
</div>
</div>

</body>
</html>


More information about the webkit-changes mailing list