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

LibWeb: Don't allocate NamedNodeMap in Element constructor

Allocations should happen in the initialize() virtual, so move it there.
This commit is contained in:
Andreas Kling 2022-09-03 18:47:33 +02:00
parent ffad902c07
commit b30e95eb27
2 changed files with 10 additions and 3 deletions

View file

@ -32,7 +32,6 @@ class Element
WEB_PLATFORM_OBJECT(Element, ParentNode);
public:
Element(Document&, DOM::QualifiedName);
virtual ~Element() override;
String const& qualified_name() const { return m_qualified_name.as_string(); }
@ -142,6 +141,9 @@ public:
void serialize_pseudo_elements_as_json(JsonArraySerializer<StringBuilder>& children_array) const;
protected:
Element(Document&, DOM::QualifiedName);
virtual void initialize(JS::Realm&) override;
virtual void children_changed() override;
virtual void visit_edges(Cell::Visitor&) override;
@ -152,7 +154,7 @@ private:
QualifiedName m_qualified_name;
String m_html_uppercased_qualified_name;
JS::NonnullGCPtr<NamedNodeMap> m_attributes;
JS::GCPtr<NamedNodeMap> m_attributes;
JS::GCPtr<CSS::ElementInlineCSSStyleDeclaration> m_inline_style;
JS::GCPtr<DOMTokenList> m_class_list;
JS::GCPtr<ShadowRoot> m_shadow_root;