Bug 17024. Fix mClassList leak; add bloaty stats for nsClassList. r=hyatt a=chofmann

This commit is contained in:
waterson%netscape.com 1999-11-04 01:50:47 +00:00
Родитель 6cb382251f
Коммит 52ce5fde68
4 изменённых файлов: 28 добавлений и 4 удалений

Просмотреть файл

@ -454,6 +454,7 @@ nsXULAttributes::~nsXULAttributes()
nsXULAttribute* attr = NS_REINTERPRET_CAST(nsXULAttribute*, mAttributes.ElementAt(indx));
NS_RELEASE(attr);
}
delete mClassList;
}
@ -636,7 +637,13 @@ nsXULAttributes::HasClass(nsIAtom* aClass) const
nsresult nsXULAttributes::SetClassList(nsClassList* aClassList)
{
mClassList = aClassList;
delete mClassList;
if (aClassList) {
mClassList = new nsClassList(*aClassList);
}
else {
mClassList = nsnull;
}
return NS_OK;
}

Просмотреть файл

@ -42,12 +42,16 @@ class nsIURI;
class nsClassList {
public:
nsClassList(nsIAtom* aAtom)
: mAtom(aAtom), mNext(nsnull) {}
: mAtom(aAtom), mNext(nsnull)
{
MOZ_COUNT_CTOR(nsClassList);
}
nsClassList(const nsClassList& aCopy)
: mAtom(aCopy.mAtom), mNext(nsnull)
{
MOZ_COUNT_CTOR(nsClassList);
if (aCopy.mNext) mNext = new nsClassList(*(aCopy.mNext));
}
@ -67,6 +71,7 @@ public:
~nsClassList(void)
{
MOZ_COUNT_DTOR(nsClassList);
delete mNext;
}

Просмотреть файл

@ -454,6 +454,7 @@ nsXULAttributes::~nsXULAttributes()
nsXULAttribute* attr = NS_REINTERPRET_CAST(nsXULAttribute*, mAttributes.ElementAt(indx));
NS_RELEASE(attr);
}
delete mClassList;
}
@ -636,7 +637,13 @@ nsXULAttributes::HasClass(nsIAtom* aClass) const
nsresult nsXULAttributes::SetClassList(nsClassList* aClassList)
{
mClassList = aClassList;
delete mClassList;
if (aClassList) {
mClassList = new nsClassList(*aClassList);
}
else {
mClassList = nsnull;
}
return NS_OK;
}

Просмотреть файл

@ -42,12 +42,16 @@ class nsIURI;
class nsClassList {
public:
nsClassList(nsIAtom* aAtom)
: mAtom(aAtom), mNext(nsnull) {}
: mAtom(aAtom), mNext(nsnull)
{
MOZ_COUNT_CTOR(nsClassList);
}
nsClassList(const nsClassList& aCopy)
: mAtom(aCopy.mAtom), mNext(nsnull)
{
MOZ_COUNT_CTOR(nsClassList);
if (aCopy.mNext) mNext = new nsClassList(*(aCopy.mNext));
}
@ -67,6 +71,7 @@ public:
~nsClassList(void)
{
MOZ_COUNT_DTOR(nsClassList);
delete mNext;
}