[css-grid] The isValidTransition function must not alter the GridSizingData object
authorjfernandez@igalia.com <jfernandez@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Jul 2016 18:46:42 +0000 (18:46 +0000)
committerjfernandez@igalia.com <jfernandez@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Jul 2016 18:46:42 +0000 (18:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=160252

Reviewed by Darin Adler.

It's not correct that a function which purpose is to check out the
validity of a state modifies such state.

That code was there to allow the extra row track sizing iteration
in the case of a grid container with indefinite height. We need to
do that in order to figure out its intrinsic height, which will be
used then to properly sizing the row tracks.

Since the intrinsic height computation uses directly the
computeUsedBreadthOfGridTracks function, it does not alter the
algorithm state-machine, hence, we can safely remove this code,
which was incorrect in any case.

No new tests, it's just a refactoring with no functionality change.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridSizingData::isValidTransition):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@203785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderGrid.cpp

index ab474ee..98552f1 100644 (file)
@@ -1,3 +1,28 @@
+2016-07-27  Javier Fernandez  <jfernandez@igalia.com>
+
+        [css-grid] The isValidTransition function must not alter the GridSizingData object
+        https://bugs.webkit.org/show_bug.cgi?id=160252
+
+        Reviewed by Darin Adler.
+
+        It's not correct that a function which purpose is to check out the
+        validity of a state modifies such state.
+
+        That code was there to allow the extra row track sizing iteration
+        in the case of a grid container with indefinite height. We need to
+        do that in order to figure out its intrinsic height, which will be
+        used then to properly sizing the row tracks.
+
+        Since the intrinsic height computation uses directly the
+        computeUsedBreadthOfGridTracks function, it does not alter the
+        algorithm state-machine, hence, we can safely remove this code,
+        which was incorrect in any case.
+
+        No new tests, it's just a refactoring with no functionality change.
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::GridSizingData::isValidTransition):
+
 2016-07-27  Chris Dumez  <cdumez@apple.com>
 
         First parameter to Document.execCommand() / queryCommand*() should be mandatory
index 02d9805..5f8a699 100644 (file)
@@ -261,17 +261,13 @@ public:
         ASSERT_NOT_REACHED();
         sizingState = ColumnSizingFirstIteration;
     }
-    bool isValidTransition(GridTrackSizingDirection direction)
+    bool isValidTransition(GridTrackSizingDirection direction) const
     {
         switch (sizingState) {
         case ColumnSizingFirstIteration:
+        case ColumnSizingSecondIteration:
             return direction == ForColumns;
         case RowSizingFirstIteration:
-            return direction == ForRows;
-        case ColumnSizingSecondIteration:
-            if (direction == ForRows)
-                sizingState = RowSizingFirstIteration;
-            return true;
         case RowSizingSecondIteration:
             return direction == ForRows;
         }