LibWeb: Add missing null checks in Layout::Node::set_needs_display()

Let's not assume the containing block has a paintable box just because
someone is calling set_needs_display(). It can just be a no-op in that
case, and nobody gets hurt.
This commit is contained in:
Andreas Kling 2022-09-27 15:16:53 +02:00
parent 385657a4bf
commit 8fa459f2d6
Notes: sideshowbarker 2024-07-17 06:33:03 +09:00

View File

@ -127,14 +127,17 @@ InitialContainingBlock& Node::root()
void Node::set_needs_display()
{
if (auto* block = containing_block()) {
block->paint_box()->for_each_fragment([&](auto& fragment) {
if (&fragment.layout_node() == this || is_ancestor_of(fragment.layout_node())) {
browsing_context().set_needs_display(enclosing_int_rect(fragment.absolute_rect()));
}
return IterationDecision::Continue;
});
}
auto* containing_block = this->containing_block();
if (!containing_block)
return;
if (!containing_block->paint_box())
return;
containing_block->paint_box()->for_each_fragment([&](auto& fragment) {
if (&fragment.layout_node() == this || is_ancestor_of(fragment.layout_node())) {
browsing_context().set_needs_display(enclosing_int_rect(fragment.absolute_rect()));
}
return IterationDecision::Continue;
});
}
Gfx::FloatPoint Node::box_type_agnostic_position() const