Procházet zdrojové kódy

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 před 3 roky
rodič
revize
3ca26c7a7a

+ 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;
 }