Title: [279306] trunk/Source/WebCore
Revision
279306
Author
[email protected]
Date
2021-06-25 19:26:41 -0700 (Fri, 25 Jun 2021)

Log Message

[LFC][TFC] Remove redundant struct ResolvedItem
https://bugs.webkit.org/show_bug.cgi?id=227405

Reviewed by Sam Weinig.

* layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::distributeAvailableSpace):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (279305 => 279306)


--- trunk/Source/WebCore/ChangeLog	2021-06-26 01:47:28 UTC (rev 279305)
+++ trunk/Source/WebCore/ChangeLog	2021-06-26 02:26:41 UTC (rev 279306)
@@ -1,3 +1,13 @@
+2021-06-25  Alan Bujtas  <[email protected]>
+
+        [LFC][TFC] Remove redundant struct ResolvedItem
+        https://bugs.webkit.org/show_bug.cgi?id=227405
+
+        Reviewed by Sam Weinig.
+
+        * layout/formattingContexts/table/TableLayout.cpp:
+        (WebCore::Layout::distributeAvailableSpace):
+
 2021-06-25  Myles C. Maxfield  <[email protected]>
 
         [macOS] WebGL content is unable to use the discrete GPU

Modified: trunk/Source/WebCore/layout/formattingContexts/table/TableLayout.cpp (279305 => 279306)


--- trunk/Source/WebCore/layout/formattingContexts/table/TableLayout.cpp	2021-06-26 01:47:28 UTC (rev 279305)
+++ trunk/Source/WebCore/layout/formattingContexts/table/TableLayout.cpp	2021-06-26 02:26:41 UTC (rev 279306)
@@ -113,14 +113,10 @@
 template <typename SpanType>
 static Vector<LayoutUnit> distributeAvailableSpace(const TableGrid& grid, LayoutUnit availableSpace, const WTF::Function<GridSpace(const TableGrid::Slot&, size_t)>& slotSpace)
 {
-    struct ResolvedItem {
-        GridSpace slotSpace;
-    };
-
     auto& columns = grid.columns();
     auto& rows = grid.rows();
     // 1. Collect the non-spanning spaces first. They are used for the final distribution as well as for distributing the spanning space.
-    Vector<std::optional<ResolvedItem>> resolvedItems(SpanType::size(grid));
+    Vector<std::optional<GridSpace>> resolvedItems(SpanType::size(grid));
     for (size_t columnIndex = 0; columnIndex < columns.size(); ++columnIndex) {
         for (size_t rowIndex = 0; rowIndex < rows.size(); ++rowIndex) {
             auto& slot = *grid.slot({ columnIndex, rowIndex });
@@ -128,8 +124,8 @@
                 continue;
             auto index = SpanType::index(columnIndex, rowIndex);
             if (!resolvedItems[index])
-                resolvedItems[index] = ResolvedItem { };
-            resolvedItems[index]->slotSpace = max(resolvedItems[index]->slotSpace, slotSpace(slot, index));
+                resolvedItems[index] = GridSpace { };
+            resolvedItems[index] = max(*resolvedItems[index], slotSpace(slot, index));
         }
     }
 
@@ -174,7 +170,7 @@
                     continue;
                 ASSERT(unresolvedColumnCount);
                 --unresolvedColumnCount;
-                unresolvedSpanningSpace -= resolvedItems[spanIndex]->slotSpace;
+                unresolvedSpanningSpace -= *resolvedItems[spanIndex];
             }
             ASSERT(unresolvedColumnCount);
             auto equalSpaceForSpannedColumns = unresolvedSpanningSpace / unresolvedColumnCount;
@@ -181,7 +177,7 @@
             for (auto spanIndex = SpanType::startSpan(cell); spanIndex < SpanType::endSpan(cell); ++spanIndex) {
                 if (resolvedItems[spanIndex])
                     continue;
-                resolvedItems[spanIndex] = ResolvedItem { equalSpaceForSpannedColumns };
+                resolvedItems[spanIndex] = equalSpaceForSpannedColumns;
             }
         } else {
             // 1. Collect the non-spaning resolved spaces.
@@ -190,7 +186,7 @@
             // New resolved widths: [ 3 ] [ 6 ].
             auto resolvedSpanningSpace = GridSpace { };
             for (auto spanIndex = SpanType::startSpan(cell); spanIndex < SpanType::endSpan(cell); ++spanIndex)
-                resolvedSpanningSpace += resolvedItems[spanIndex]->slotSpace;
+                resolvedSpanningSpace += *resolvedItems[spanIndex];
             if (resolvedSpanningSpace.preferredSpace >= unresolvedSpanningSpace.preferredSpace) {
                 // The spanning cell fits the spanned columns/rows just fine. Nothing to distribute.
                 continue;
@@ -200,7 +196,7 @@
             if (!spaceToDistribute.isEmpty()) {
                 auto columnsFlexBase = spaceToDistribute.flexBase / resolvedSpanningSpace.flexBase;
                 for (auto spanIndex = SpanType::startSpan(cell); spanIndex < SpanType::endSpan(cell); ++spanIndex)
-                    resolvedItems[spanIndex]->slotSpace += GridSpace { resolvedItems[spanIndex]->slotSpace.preferredSpace * columnsFlexBase, resolvedItems[spanIndex]->slotSpace.flexBase * columnsFlexBase};
+                    *resolvedItems[spanIndex] += GridSpace { resolvedItems[spanIndex]->preferredSpace * columnsFlexBase, resolvedItems[spanIndex]->flexBase * columnsFlexBase};
             }
         }
     }
@@ -213,7 +209,7 @@
     // Fixed size cells don't participate in available space distribution.
     auto adjustabledSpace = GridSpace { };
     for (auto& resolvedItem : resolvedItems)
-        adjustabledSpace += resolvedItem->slotSpace;
+        adjustabledSpace += *resolvedItem;
 
     Vector<LayoutUnit> distributedSpaces(resolvedItems.size());
     float spaceToDistribute = availableSpace;
@@ -224,8 +220,8 @@
     // we may assign less space to columns.
     auto columnsFlexBase = adjustabledSpace.flexBase ? spaceToDistribute / adjustabledSpace.flexBase : 0.f;
     for (size_t index = 0; index < resolvedItems.size(); ++index) {
-        auto columnExtraSpace = columnsFlexBase * resolvedItems[index]->slotSpace.flexBase;
-        distributedSpaces[index] = LayoutUnit { resolvedItems[index]->slotSpace.preferredSpace + columnExtraSpace };
+        auto columnExtraSpace = columnsFlexBase * resolvedItems[index]->flexBase;
+        distributedSpaces[index] = LayoutUnit { resolvedItems[index]->preferredSpace + columnExtraSpace };
     }
     return distributedSpaces;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to