浏览代码

LibWeb: Fix InlineLevelIterator not exiting box model metric nodes

We were neglecting to pop nodes from the box model stack. The metrics
were already being zeroed out when used, but let's not grow the stack
needlessly.
Andreas Kling 3 年之前
父节点
当前提交
3ca26c7a7a
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      Userland/Libraries/LibWeb/Layout/InlineLevelIterator.cpp

+ 6 - 0
Userland/Libraries/LibWeb/Layout/InlineLevelIterator.cpp

@@ -86,6 +86,12 @@ Layout::Node const* InlineLevelIterator::next_inline_node_in_pre_order(Layout::N
             return nullptr;
     }
 
+    // If node is the last node on the "box model node stack", pop it off.
+    if (!m_box_model_node_stack.is_empty()
+        && &m_box_model_node_stack.last() == node) {
+        exit_node_with_box_model_metrics();
+    }
+
     return next;
 }