about summary refs log tree commit diff stats
path: root/src/layout
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-09-09 22:41:04 +0200
committerbptato <nincsnevem662@gmail.com>2023-09-09 22:41:04 +0200
commit6943546078a20c763a9bb346b42681efc0d1e527 (patch)
tree5d6ae1736b7eff63433763637d92b979eb7e0aff /src/layout
parent330cc2a7692002cadd9f6dee477abcbf14c94976 (diff)
downloadchawan-6943546078a20c763a9bb346b42681efc0d1e527.tar.gz
layout: simplify preBuildTableRows
the iterator here was rather pointless
Diffstat (limited to 'src/layout')
-rw-r--r--src/layout/engine.nim49
1 files changed, 13 insertions, 36 deletions
diff --git a/src/layout/engine.nim b/src/layout/engine.nim
index f3249cba..1658d91d 100644
--- a/src/layout/engine.nim
+++ b/src/layout/engine.nim
@@ -1294,53 +1294,30 @@ proc buildTableRow(pctx: TableContext, ctx: RowContext, parent: BlockBox,
   row.width = x
   return row
 
-iterator rows(builder: TableBoxBuilder): BoxBuilder {.inline.} =
-  var header: seq[TableRowBoxBuilder]
-  var body: seq[TableRowBoxBuilder]
-  var footer: seq[TableRowBoxBuilder]
+proc preBuildTableRows(ctx: var TableContext, builder: TableBoxBuilder,
+    table: BlockBox) =
+  var rows: seq[TableRowBoxBuilder]
   var caption: TableCaptionBoxBuilder
   for child in builder.children:
-    assert child.computed{"display"} in ProperTableChild, $child.computed{"display"}
+    assert child.computed{"display"} in ProperTableChild
     case child.computed{"display"}
     of DISPLAY_TABLE_ROW:
-      body.add(TableRowBoxBuilder(child))
-    of DISPLAY_TABLE_HEADER_GROUP:
-      for child in child.children:
-        assert child.computed{"display"} == DISPLAY_TABLE_ROW
-        header.add(TableRowBoxBuilder(child))
-    of DISPLAY_TABLE_ROW_GROUP:
-      for child in child.children:
-        assert child.computed{"display"} == DISPLAY_TABLE_ROW
-        body.add(TableRowBoxBuilder(child))
-    of DISPLAY_TABLE_FOOTER_GROUP:
+      rows.add(TableRowBoxBuilder(child))
+    of DISPLAY_TABLE_HEADER_GROUP, DISPLAY_TABLE_ROW_GROUP,
+        DISPLAY_TABLE_FOOTER_GROUP:
       for child in child.children:
         assert child.computed{"display"} == DISPLAY_TABLE_ROW
-        footer.add(TableRowBoxBuilder(child))
+        rows.add(TableRowBoxBuilder(child))
     of DISPLAY_TABLE_CAPTION:
       if caption == nil:
         caption = TableCaptionBoxBuilder(child)
     else: discard
   if caption != nil:
-    yield caption
-  for child in header:
-    yield child
-  for child in body:
-    yield child
-  for child in footer:
-    yield child
-
-proc preBuildTableRows(ctx: var TableContext, builder: TableBoxBuilder,
-    table: BlockBox) =
-  var i = 0
-  for row in builder.rows:
-    if unlikely(row.computed{"display"} == DISPLAY_TABLE_CAPTION):
-      ctx.caption = TableCaptionBoxBuilder(row)
-    else:
-      let row = TableRowBoxBuilder(row)
-      let rctx = ctx.preBuildTableRow(row, table)
-      ctx.rows.add(rctx)
-      ctx.maxwidth = max(rctx.width, ctx.maxwidth)
-      inc i
+    ctx.caption = caption
+  for row in rows:
+    let rctx = ctx.preBuildTableRow(row, table)
+    ctx.rows.add(rctx)
+    ctx.maxwidth = max(rctx.width, ctx.maxwidth)
 
 proc calcUnspecifiedColIndices(ctx: var TableContext, W: var LayoutUnit,
     weight: var float64): seq[int] =