فهرست منبع

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;
             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;
     return next;
 }
 }