mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset fea9904b6dec (bug 987433) for leaks on a CLOSED TREE.
This commit is contained in:
parent
290aaae8d9
commit
4d6e8fe891
@ -520,6 +520,10 @@ FragmentOrElement::nsDOMSlots::~nsDOMSlots()
|
||||
if (mAttributeMap) {
|
||||
mAttributeMap->DropReference();
|
||||
}
|
||||
|
||||
if (mClassList) {
|
||||
mClassList->DropReference();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@ -585,7 +589,10 @@ FragmentOrElement::nsDOMSlots::Unlink(bool aIsXUL)
|
||||
mChildrenList = nullptr;
|
||||
mUndoManager = nullptr;
|
||||
mCustomElementData = nullptr;
|
||||
mClassList = nullptr;
|
||||
if (mClassList) {
|
||||
mClassList->DropReference();
|
||||
mClassList = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
size_t
|
||||
|
@ -29,7 +29,7 @@ nsDOMTokenList::nsDOMTokenList(Element* aElement, nsIAtom* aAttrAtom)
|
||||
|
||||
nsDOMTokenList::~nsDOMTokenList() { }
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_1(nsDOMTokenList, mElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(nsDOMTokenList)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsDOMTokenList)
|
||||
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
||||
@ -40,6 +40,12 @@ NS_INTERFACE_MAP_END
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMTokenList)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMTokenList)
|
||||
|
||||
void
|
||||
nsDOMTokenList::DropReference()
|
||||
{
|
||||
mElement = nullptr;
|
||||
}
|
||||
|
||||
const nsAttrValue*
|
||||
nsDOMTokenList::GetParsedAttr()
|
||||
{
|
||||
|
@ -37,6 +37,8 @@ public:
|
||||
|
||||
nsDOMTokenList(Element* aElement, nsIAtom* aAttrAtom);
|
||||
|
||||
void DropReference();
|
||||
|
||||
virtual JSObject* WrapObject(JSContext *cx,
|
||||
JS::Handle<JSObject*> scope) MOZ_OVERRIDE;
|
||||
|
||||
@ -78,7 +80,7 @@ protected:
|
||||
const nsTArray<nsString>& aTokens);
|
||||
inline const nsAttrValue* GetParsedAttr();
|
||||
|
||||
nsCOMPtr<Element> mElement;
|
||||
Element* mElement;
|
||||
nsCOMPtr<nsIAtom> mAttrAtom;
|
||||
};
|
||||
|
||||
|
@ -30,6 +30,9 @@ HTMLOutputElement::HTMLOutputElement(already_AddRefed<nsINodeInfo>& aNodeInfo)
|
||||
|
||||
HTMLOutputElement::~HTMLOutputElement()
|
||||
{
|
||||
if (mTokenList) {
|
||||
mTokenList->DropReference();
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLOutputElement)
|
||||
@ -37,7 +40,10 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLOutputElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(HTMLOutputElement,
|
||||
nsGenericHTMLFormElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mValidity)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mTokenList)
|
||||
if (tmp->mTokenList) {
|
||||
tmp->mTokenList->DropReference();
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mTokenList)
|
||||
}
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(HTMLOutputElement,
|
||||
nsGenericHTMLFormElement)
|
||||
|
@ -3142,6 +3142,7 @@ nsDOMSettableTokenListPropertyDestructor(void *aObject, nsIAtom *aProperty,
|
||||
{
|
||||
nsDOMSettableTokenList* list =
|
||||
static_cast<nsDOMSettableTokenList*>(aPropertyValue);
|
||||
list->DropReference();
|
||||
NS_RELEASE(list);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user