Issue #2490 - Part 4: Make css::Rule wrappercached.

This commit is contained in:
Moonchild 2024-03-30 12:39:15 +01:00 committed by roytam1
commit 1342838b3f
9 changed files with 208 additions and 18 deletions

View file

@ -1442,6 +1442,7 @@ StyleRule::StyleRule(nsCSSSelectorList* aSelector,
mSelector(aSelector),
mDeclaration(aDeclaration)
{
SetIsNotDOMBinding();
NS_PRECONDITION(aDeclaration, "must have a declaration");
mDeclaration->SetOwningRule(this);
@ -1453,6 +1454,7 @@ StyleRule::StyleRule(const StyleRule& aCopy)
mSelector(aCopy.mSelector ? aCopy.mSelector->Clone() : nullptr),
mDeclaration(new Declaration(*aCopy.mDeclaration))
{
SetIsNotDOMBinding();
mDeclaration->SetOwningRule(this);
// rest is constructed lazily on existing data
}
@ -1680,6 +1682,12 @@ StyleRule::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
return n;
}
/* virtual */ JSObject*
StyleRule::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
{
NS_NOTREACHED("We called SetIsNotDOMBinding() in our constructor");
return nullptr;
}
} // namespace css
} // namespace mozilla