1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 20:28:11 +00:00

LibJS: Don't allocate property table during GC marking phase

Shape was allocating property tables inside visit_children(), which
could cause garbage collection to happen. It's not very good to start
a new garbage collection while you are in the middle of one already.
This commit is contained in:
Andreas Kling 2020-09-20 19:11:49 +02:00
parent 4036ff9d91
commit 893df28e80

View file

@ -104,9 +104,10 @@ void Shape::visit_children(Cell::Visitor& visitor)
for (auto& it : m_forward_transitions)
visitor.visit(it.value);
ensure_property_table();
for (auto& it : *m_property_table)
it.key.visit_children(visitor);
if (m_property_table) {
for (auto& it : *m_property_table)
it.key.visit_children(visitor);
}
}
Optional<PropertyMetadata> Shape::lookup(const StringOrSymbol& property_name) const