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

LibWeb: Make the paint tree GC-allocated

This simplifies the ownership model between DOM/layout/paint nodes
immensely by deferring to the garbage collector for figuring out what's
live and what's not.
This commit is contained in:
Andreas Kling 2023-01-11 12:51:49 +01:00
parent 35ba13802d
commit 4d401bf796
64 changed files with 148 additions and 108 deletions

View file

@ -36,6 +36,7 @@ void Node::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_dom_node);
visitor.visit(m_paintable);
visitor.visit(m_browsing_context);
TreeNode::visit_edges(visitor);
}
@ -679,12 +680,12 @@ void NodeWithStyle::reset_table_box_computed_values_used_by_wrapper_to_init_valu
mutable_computed_values.set_margin({ CSS::Length::make_px(0), CSS::Length::make_px(0), CSS::Length::make_px(0), CSS::Length::make_px(0) });
}
void Node::set_paintable(RefPtr<Painting::Paintable> paintable)
void Node::set_paintable(JS::GCPtr<Painting::Paintable> paintable)
{
m_paintable = move(paintable);
}
RefPtr<Painting::Paintable> Node::create_paintable() const
JS::GCPtr<Painting::Paintable> Node::create_paintable() const
{
return nullptr;
}