Bug 1921097 - Fix up RadioGroupContainer::SizeOfIncludingThis(). r=dom-core,jjaschke

mRadioGroups is an interior pointer, so we shouldn't pass it to
MallocSizeOf.

Also, devirtualize RadioGroupContainer::WalkRadioGroup. This method
being virtual meant that RadioGroupContainer needed a vtable, causing
`this` to not be equal to `this.mRadioGroups`.

Differential Revision: https://phabricator.services.mozilla.com/D223638
This commit is contained in:
Andrew McCreight
2024-09-30 17:00:11 +00:00
parent c2664b3583
commit 79fc1fa66f
2 changed files with 2 additions and 2 deletions

View File

@@ -65,7 +65,7 @@ void RadioGroupContainer::Traverse(RadioGroupContainer* tmp,
size_t RadioGroupContainer::SizeOfIncludingThis(
MallocSizeOf aMallocSizeOf) const {
return mRadioGroups.SizeOfIncludingThis(aMallocSizeOf);
return aMallocSizeOf(this) + mRadioGroups.SizeOfExcludingThis(aMallocSizeOf);
}
nsresult RadioGroupContainer::WalkRadioGroup(const nsAString& aName,

View File

@@ -26,7 +26,7 @@ class RadioGroupContainer final {
nsCycleCollectionTraversalCallback& cb);
size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const;
NS_IMETHOD WalkRadioGroup(const nsAString& aName, nsIRadioVisitor* aVisitor);
nsresult WalkRadioGroup(const nsAString& aName, nsIRadioVisitor* aVisitor);
void SetCurrentRadioButton(const nsAString& aName, HTMLInputElement* aRadio);
HTMLInputElement* GetCurrentRadioButton(const nsAString& aName);
nsresult GetNextRadioButton(const nsAString& aName, const bool aPrevious,