1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:57:45 +00:00

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

View file

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