diff --git a/mozilla/content/base/src/nsDOMAttributeMap.cpp b/mozilla/content/base/src/nsDOMAttributeMap.cpp index 35b0a1c00aa..1168fa0cf18 100644 --- a/mozilla/content/base/src/nsDOMAttributeMap.cpp +++ b/mozilla/content/base/src/nsDOMAttributeMap.cpp @@ -470,3 +470,37 @@ nsDOMAttributeMap::GetLength(PRUint32 *aLength) } return rv; } + +#ifdef DEBUG +PR_STATIC_CALLBACK (PRIntn) +SizeAttributes(PLHashEntry* he, PRIntn i, void* arg) +{ + char* str = (char*)he->key; + PRUint32 size = sizeof(PLHashEntry); + if (str) { + size += PL_strlen(str) + 1; + } + PRUint32* sump = (PRUint32*) arg; + *sump = *sump + size; + return HT_ENUMERATE_NEXT; +} + +nsresult +nsDOMAttributeMap::SizeOfNamedNodeMap(nsIDOMNamedNodeMap* aMap, + nsISizeOfHandler* aSizer, + PRUint32* aResult) +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + nsDOMAttributeMap* map = (nsDOMAttributeMap*) aMap; + PRUint32 sum = sizeof(nsDOMAttributeMap); + if (map->mAttributes) { + sum += sizeof(*map->mAttributes); + PRUint32 esize = 0; + PL_HashTableEnumerateEntries(map->mAttributes, SizeAttributes, + (void*) &esize); + sum += esize; + } + *aResult = sum; + return NS_OK; +} +#endif diff --git a/mozilla/content/base/src/nsDOMAttributeMap.h b/mozilla/content/base/src/nsDOMAttributeMap.h index 4473e3471ee..6c4db4d3a45 100644 --- a/mozilla/content/base/src/nsDOMAttributeMap.h +++ b/mozilla/content/base/src/nsDOMAttributeMap.h @@ -49,6 +49,12 @@ public: void DropReference(); +#ifdef DEBUG + static nsresult SizeOfNamedNodeMap(nsIDOMNamedNodeMap* aMap, + nsISizeOfHandler* aSizer, + PRUint32* aResult); +#endif + protected: nsresult GetNamedItemCommon(const nsString& aAttrName, PRInt32 aNameSpaceID, diff --git a/mozilla/content/base/src/nsGenericDOMDataNode.h b/mozilla/content/base/src/nsGenericDOMDataNode.h index 89f29b2d164..998afbb0d22 100644 --- a/mozilla/content/base/src/nsGenericDOMDataNode.h +++ b/mozilla/content/base/src/nsGenericDOMDataNode.h @@ -478,9 +478,6 @@ struct nsGenericDOMDataNode { } \ NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ - } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ } /** diff --git a/mozilla/content/base/src/nsGenericElement.h b/mozilla/content/base/src/nsGenericElement.h index 19cf519b119..772281c896c 100644 --- a/mozilla/content/base/src/nsGenericElement.h +++ b/mozilla/content/base/src/nsGenericElement.h @@ -531,9 +531,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; #define NS_IMPL_ICONTENT_NO_SETPARENT_USING_GENERIC(_g) \ NS_IMETHOD GetDocument(nsIDocument*& aResult) const { \ @@ -642,9 +640,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; #define NS_IMPL_ICONTENT_NO_SETDOCUMENT_USING_GENERIC(_g) \ NS_IMETHOD GetDocument(nsIDocument*& aResult) const { \ @@ -753,9 +749,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; #define NS_IMPL_ICONTENT_NO_SETPARENT_NO_SETDOCUMENT_USING_GENERIC(_g) \ NS_IMETHOD GetDocument(nsIDocument*& aResult) const { \ @@ -862,9 +856,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; /** * Implement the nsIScriptObjectOwner API by forwarding the methods to a diff --git a/mozilla/content/base/src/nsTextNode.cpp b/mozilla/content/base/src/nsTextNode.cpp index 5a7ab892aaa..ff9b33eab90 100644 --- a/mozilla/content/base/src/nsTextNode.cpp +++ b/mozilla/content/base/src/nsTextNode.cpp @@ -62,6 +62,10 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); + } + // nsITextContent NS_IMPL_ITEXTCONTENT_USING_GENERIC_DOM_DATA(mInner) diff --git a/mozilla/content/html/content/public/nsIForm.h b/mozilla/content/html/content/public/nsIForm.h index ad395a1a839..0e8f30a63e4 100644 --- a/mozilla/content/html/content/public/nsIForm.h +++ b/mozilla/content/html/content/public/nsIForm.h @@ -20,6 +20,7 @@ #include "nsISupports.h" class nsIFormControl; +class nsISizeOfHandler; #define NS_FORM_METHOD_GET 0 #define NS_FORM_METHOD_POST 1 @@ -31,10 +32,11 @@ class nsIFormControl; { 0xb7e94510, 0x4c19, 0x11d2, \ { 0x80, 0x3f, 0x0, 0x60, 0x8, 0x15, 0xa7, 0x91 } } -/** - * This interface provides a complete set of methods dealing with elements which - * belong to a form element. When nsIDOMHTMLCollection allows write operations - **/ +/** + * This interface provides a complete set of methods dealing with + * elements which belong to a form element. When nsIDOMHTMLCollection + * allows write operations + */ class nsIForm : public nsISupports { public: @@ -70,6 +72,7 @@ public: NS_IMETHOD RemoveElement(nsIFormControl* aElement, PRBool aChildIsRef = PR_TRUE) = 0; + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const = 0; }; #endif /* nsIForm_h___ */ diff --git a/mozilla/content/html/content/src/GenericElementCollection.cpp b/mozilla/content/html/content/src/GenericElementCollection.cpp index 1622efc9f36..61c9e1a42ee 100644 --- a/mozilla/content/html/content/src/GenericElementCollection.cpp +++ b/mozilla/content/html/content/src/GenericElementCollection.cpp @@ -126,3 +126,13 @@ GenericElementCollection::ParentDestroyed() return NS_OK; } +#ifdef DEBUG +nsresult +GenericElementCollection::SizeOf(nsISizeOfHandler* aSizer, + PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + *aResult = sizeof(*this); + return NS_OK; +} +#endif diff --git a/mozilla/content/html/content/src/GenericElementCollection.h b/mozilla/content/html/content/src/GenericElementCollection.h index 4a1b3cab0db..8e0462283ca 100644 --- a/mozilla/content/html/content/src/GenericElementCollection.h +++ b/mozilla/content/html/content/src/GenericElementCollection.h @@ -43,6 +43,10 @@ public: NS_IMETHOD ParentDestroyed(); +#ifdef DEBUG + nsresult SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; +#endif + protected: nsIContent * mParent; nsIAtom * mTag; diff --git a/mozilla/content/html/content/src/nsAttributeContent.cpp b/mozilla/content/html/content/src/nsAttributeContent.cpp index 4565b4c7993..f5de1bea8b9 100644 --- a/mozilla/content/html/content/src/nsAttributeContent.cpp +++ b/mozilla/content/html/content/src/nsAttributeContent.cpp @@ -131,17 +131,7 @@ public: NS_IMETHOD GetAttributeCount(PRInt32& aResult) const { aResult = 0; return NS_OK; } NS_IMETHOD List(FILE* out, PRInt32 aIndent) const { return NS_OK; } - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { - if (!aResult) { - return NS_ERROR_NULL_POINTER; - } -#ifdef DEBUG - *aResult = sizeof(*this); -#else - *aResult = 0; -#endif - return NS_OK; - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; NS_IMETHOD HandleDOMEvent(nsIPresContext& aPresContext, nsEvent* aEvent, nsIDOMEvent** aDOMEvent, @@ -548,3 +538,11 @@ nsAttributeContent::IsOnlyWhitespace(PRBool* aResult) *aResult = PR_TRUE; return NS_OK; } + +NS_IMETHODIMP +nsAttributeContent::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + *aResult = sizeof(*this); + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsGenericDOMHTMLCollection.cpp b/mozilla/content/html/content/src/nsGenericDOMHTMLCollection.cpp index a76f71e1477..3af07046a79 100644 --- a/mozilla/content/html/content/src/nsGenericDOMHTMLCollection.cpp +++ b/mozilla/content/html/content/src/nsGenericDOMHTMLCollection.cpp @@ -19,14 +19,18 @@ #include "nsGenericDOMHTMLCollection.h" +MOZ_DECL_CTOR_COUNTER(nsGenericDOMHTMLCollection); + nsGenericDOMHTMLCollection::nsGenericDOMHTMLCollection() { + MOZ_COUNT_CTOR(nsGenericDOMHTMLCollection); mRefCnt = 0; mScriptObject = nsnull; } nsGenericDOMHTMLCollection::~nsGenericDOMHTMLCollection() { + MOZ_COUNT_DTOR(nsGenericDOMHTMLCollection); } nsresult diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index f50ec00c9a6..c41be6b6250 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -114,8 +114,12 @@ protected: nsIHTMLContent *mContent; }; +MOZ_DECL_CTOR_COUNTER(nsDOMCSSAttributeDeclaration); + nsDOMCSSAttributeDeclaration::nsDOMCSSAttributeDeclaration(nsIHTMLContent *aContent) { + MOZ_COUNT_CTOR(nsDOMCSSAttributeDeclaration); + // This reference is not reference-counted. The content // object tells us when its about to go away. mContent = aContent; @@ -123,6 +127,7 @@ nsDOMCSSAttributeDeclaration::nsDOMCSSAttributeDeclaration(nsIHTMLContent *aCont nsDOMCSSAttributeDeclaration::~nsDOMCSSAttributeDeclaration() { + MOZ_COUNT_DTOR(nsDOMCSSAttributeDeclaration); } void @@ -2919,4 +2924,3 @@ nsGenericHTMLContainerElement::RemoveChildAt(PRInt32 aIndex, PRBool aNotify) return NS_OK; } - diff --git a/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp b/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp index efbce463a7d..9b8bc77c21d 100644 --- a/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp @@ -126,14 +126,18 @@ NS_NewHTMLAnchorElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLAnchorElement); + nsHTMLAnchorElement::nsHTMLAnchorElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLAnchorElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLAnchorElement::~nsHTMLAnchorElement() { + MOZ_COUNT_DTOR(nsHTMLAnchorElement); } NS_IMPL_ADDREF(nsHTMLAnchorElement) @@ -426,3 +430,9 @@ nsHTMLAnchorElement::SetHref(const nsString& aValue) { return mInner.SetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, aValue, PR_TRUE); } + +NS_IMETHODIMP +nsHTMLAnchorElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLAppletElement.cpp b/mozilla/content/html/content/src/nsHTMLAppletElement.cpp index ffd3ab2fa78..1d70a6be5f5 100644 --- a/mozilla/content/html/content/src/nsHTMLAppletElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLAppletElement.cpp @@ -125,8 +125,11 @@ NS_NewHTMLAppletElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLAppletElement); + nsHTMLAppletElement::nsHTMLAppletElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLAppletElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mReflectedApplet = PR_FALSE; @@ -134,6 +137,7 @@ nsHTMLAppletElement::nsHTMLAppletElement(nsIAtom* aTag) nsHTMLAppletElement::~nsHTMLAppletElement() { + MOZ_COUNT_DTOR(nsHTMLAppletElement); } NS_IMPL_ADDREF(nsHTMLAppletElement) @@ -341,3 +345,9 @@ nsHTMLAppletElement::SetScriptObject(void *aScriptObject) { return mInner.SetScriptObject(aScriptObject); } + +NS_IMETHODIMP +nsHTMLAppletElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLAreaElement.cpp b/mozilla/content/html/content/src/nsHTMLAreaElement.cpp index 954ab33a3f7..153aa4b7567 100644 --- a/mozilla/content/html/content/src/nsHTMLAreaElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLAreaElement.cpp @@ -106,14 +106,18 @@ NS_NewHTMLAreaElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLAreaElement); + nsHTMLAreaElement::nsHTMLAreaElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLAreaElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLAreaElement::~nsHTMLAreaElement() { + MOZ_COUNT_DTOR(nsHTMLAreaElement); } NS_IMPL_ADDREF(nsHTMLAreaElement) @@ -245,3 +249,9 @@ nsHTMLAreaElement::RemoveFocus(nsIPresContext* aPresContext) return NS_OK; } + +NS_IMETHODIMP +nsHTMLAreaElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLBRElement.cpp b/mozilla/content/html/content/src/nsHTMLBRElement.cpp index 1474861986e..1c64346cc09 100644 --- a/mozilla/content/html/content/src/nsHTMLBRElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBRElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLBRElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBRElement); + nsHTMLBRElement::nsHTMLBRElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBRElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBRElement::~nsHTMLBRElement() { + MOZ_COUNT_DTOR(nsHTMLBRElement); } NS_IMPL_ADDREF(nsHTMLBRElement) @@ -212,3 +216,9 @@ nsHTMLBRElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBRElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLBaseElement.cpp b/mozilla/content/html/content/src/nsHTMLBaseElement.cpp index f14127690ff..2f8420c358e 100644 --- a/mozilla/content/html/content/src/nsHTMLBaseElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBaseElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLBaseElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBaseElement); + nsHTMLBaseElement::nsHTMLBaseElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBaseElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBaseElement::~nsHTMLBaseElement() { + MOZ_COUNT_DTOR(nsHTMLBaseElement); } NS_IMPL_ADDREF(nsHTMLBaseElement) @@ -182,3 +186,9 @@ nsHTMLBaseElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp b/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp index 9503166a1e2..d0a471cdc89 100644 --- a/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp @@ -88,14 +88,18 @@ NS_NewHTMLBaseFontElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBaseFontElement); + nsHTMLBaseFontElement::nsHTMLBaseFontElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBaseFontElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBaseFontElement::~nsHTMLBaseFontElement() { + MOZ_COUNT_DTOR(nsHTMLBaseFontElement); } NS_IMPL_ADDREF(nsHTMLBaseFontElement) @@ -202,3 +206,9 @@ nsHTMLBaseFontElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseFontElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLBodyElement.cpp b/mozilla/content/html/content/src/nsHTMLBodyElement.cpp index be27d407bff..253f188d1af 100644 --- a/mozilla/content/html/content/src/nsHTMLBodyElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBodyElement.cpp @@ -116,15 +116,19 @@ public: BodyFixupRule* mInlineStyleRule; }; +MOZ_DECL_CTOR_COUNTER(nsBodyInner); + nsBodyInner::nsBodyInner() : nsGenericHTMLContainerElement(), mContentStyleRule(nsnull), mInlineStyleRule(nsnull) { + MOZ_COUNT_CTOR(nsBodyInner); } nsBodyInner::~nsBodyInner() { + MOZ_COUNT_DTOR(nsBodyInner); if (nsnull != mContentStyleRule) { mContentStyleRule->mPart = nsnull; mContentStyleRule->mSheet = nsnull; @@ -211,8 +215,11 @@ friend class BodyFixupRule; //---------------------------------------------------------------------- +MOZ_DECL_CTOR_COUNTER(BodyRule); + BodyRule::BodyRule(nsHTMLBodyElement* aPart, nsIHTMLStyleSheet* aSheet) { + MOZ_COUNT_CTOR(BodyRule); NS_INIT_REFCNT(); mPart = aPart; mSheet = aSheet; @@ -220,6 +227,7 @@ BodyRule::BodyRule(nsHTMLBodyElement* aPart, nsIHTMLStyleSheet* aSheet) BodyRule::~BodyRule() { + MOZ_COUNT_DTOR(BodyRule); } NS_IMPL_ISUPPORTS(BodyRule, kIStyleRuleIID); @@ -387,15 +395,19 @@ BodyRule::List(FILE* out, PRInt32 aIndent) const //---------------------------------------------------------------------- +MOZ_DECL_CTOR_COUNTER(BodyFixupRule); + BodyFixupRule::BodyFixupRule(nsHTMLBodyElement* aPart, nsIHTMLCSSStyleSheet* aSheet) : mPart(aPart), mSheet(aSheet) { + MOZ_COUNT_CTOR(BodyFixupRule); NS_INIT_REFCNT(); } BodyFixupRule::~BodyFixupRule() { + MOZ_COUNT_DTOR(BodyFixupRule); } NS_IMPL_ADDREF(BodyFixupRule); @@ -558,14 +570,18 @@ NS_NewHTMLBodyElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBodyElement); + nsHTMLBodyElement::nsHTMLBodyElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBodyElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBodyElement::~nsHTMLBodyElement() { + MOZ_COUNT_DTOR(nsHTMLBodyElement); } NS_IMPL_ADDREF(nsHTMLBodyElement) @@ -808,3 +824,9 @@ nsHTMLBodyElement::GetMappedAttributeImpact(const nsIAtom* aAttribute, return NS_OK; } + +NS_IMETHODIMP +nsHTMLBodyElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLButtonElement.cpp b/mozilla/content/html/content/src/nsHTMLButtonElement.cpp index f6c86973168..b8b987ac30e 100644 --- a/mozilla/content/html/content/src/nsHTMLButtonElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLButtonElement.cpp @@ -36,6 +36,7 @@ #include "nsIFormControlFrame.h" #include "nsIEventStateManager.h" #include "nsDOMEvent.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLButtonElementIID, NS_IDOMHTMLBUTTONELEMENT_IID); static NS_DEFINE_IID(kIFocusableContentIID, NS_IFOCUSABLECONTENT_IID); @@ -128,8 +129,11 @@ NS_NewHTMLButtonElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLButtonElement); + nsHTMLButtonElement::nsHTMLButtonElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLButtonElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -138,6 +142,7 @@ nsHTMLButtonElement::nsHTMLButtonElement(nsIAtom* aTag) nsHTMLButtonElement::~nsHTMLButtonElement() { + MOZ_COUNT_DTOR(nsHTMLButtonElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -525,3 +530,22 @@ nsHTMLButtonElement::SetForm(nsIDOMHTMLFormElement* aForm) return result; } + +NS_IMETHODIMP +nsHTMLButtonElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLDListElement.cpp b/mozilla/content/html/content/src/nsHTMLDListElement.cpp index b20cea08824..4cbd8a5be91 100644 --- a/mozilla/content/html/content/src/nsHTMLDListElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDListElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLDListElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDListElement); + nsHTMLDListElement::nsHTMLDListElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDListElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDListElement::~nsHTMLDListElement() { + MOZ_COUNT_DTOR(nsHTMLDListElement); } NS_IMPL_ADDREF(nsHTMLDListElement) @@ -196,3 +200,9 @@ nsHTMLDListElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDListElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLDelElement.cpp b/mozilla/content/html/content/src/nsHTMLDelElement.cpp index ef42476958c..31e1a429f11 100644 --- a/mozilla/content/html/content/src/nsHTMLDelElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDelElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLDelElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDelElement); + nsHTMLDelElement::nsHTMLDelElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDelElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDelElement::~nsHTMLDelElement() { + MOZ_COUNT_DTOR(nsHTMLDelElement); } NS_IMPL_ADDREF(nsHTMLDelElement) @@ -186,3 +190,9 @@ nsHTMLDelElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDelElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp b/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp index f9781706233..1a58196c452 100644 --- a/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp @@ -89,14 +89,18 @@ NS_NewHTMLDirectoryElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDirectoryElement); + nsHTMLDirectoryElement::nsHTMLDirectoryElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDirectoryElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDirectoryElement::~nsHTMLDirectoryElement() { + MOZ_COUNT_DTOR(nsHTMLDirectoryElement); } NS_IMPL_ADDREF(nsHTMLDirectoryElement) @@ -231,3 +235,9 @@ nsHTMLDirectoryElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDirectoryElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLDivElement.cpp b/mozilla/content/html/content/src/nsHTMLDivElement.cpp index 9dc85c48812..a74a15264b5 100644 --- a/mozilla/content/html/content/src/nsHTMLDivElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDivElement.cpp @@ -87,14 +87,18 @@ NS_NewHTMLDivElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDivElement); + nsHTMLDivElement::nsHTMLDivElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDivElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDivElement::~nsHTMLDivElement() { + MOZ_COUNT_DTOR(nsHTMLDivElement); } NS_IMPL_ADDREF(nsHTMLDivElement) @@ -222,3 +226,9 @@ nsHTMLDivElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDivElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp b/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp index 61ddff94b82..f47edf362d1 100644 --- a/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp @@ -84,14 +84,18 @@ NS_NewHTMLEmbedElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLEmbedElement); + nsHTMLEmbedElement::nsHTMLEmbedElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLEmbedElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLEmbedElement::~nsHTMLEmbedElement() { + MOZ_COUNT_DTOR(nsHTMLEmbedElement); } NS_IMPL_ADDREF(nsHTMLEmbedElement) @@ -208,3 +212,9 @@ nsHTMLEmbedElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLEmbedElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp b/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp index 4e457fe4948..56c3e691954 100644 --- a/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp @@ -29,6 +29,7 @@ #include "nsIPresContext.h" #include "nsIForm.h" #include "nsIFormControl.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLFieldSetElementIID, NS_IDOMHTMLFIELDSETELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -98,8 +99,11 @@ NS_NewHTMLFieldSetElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFieldSetElement); + nsHTMLFieldSetElement::nsHTMLFieldSetElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFieldSetElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -107,6 +111,7 @@ nsHTMLFieldSetElement::nsHTMLFieldSetElement(nsIAtom* aTag) nsHTMLFieldSetElement::~nsHTMLFieldSetElement() { + MOZ_COUNT_DTOR(nsHTMLFieldSetElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -285,3 +290,22 @@ nsHTMLFieldSetElement::GetType(PRInt32* aType) } } + +NS_IMETHODIMP +nsHTMLFieldSetElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLFontElement.cpp b/mozilla/content/html/content/src/nsHTMLFontElement.cpp index b2aef0a2727..3f0d4f2b7be 100644 --- a/mozilla/content/html/content/src/nsHTMLFontElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFontElement.cpp @@ -92,14 +92,18 @@ NS_NewHTMLFontElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFontElement); + nsHTMLFontElement::nsHTMLFontElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFontElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLFontElement::~nsHTMLFontElement() { + MOZ_COUNT_DTOR(nsHTMLFontElement); } NS_IMPL_ADDREF(nsHTMLFontElement) @@ -367,3 +371,9 @@ nsHTMLFontElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFontElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLFormElement.cpp b/mozilla/content/html/content/src/nsHTMLFormElement.cpp index 3b28d090010..f5775bd56fe 100644 --- a/mozilla/content/html/content/src/nsHTMLFormElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFormElement.cpp @@ -36,6 +36,7 @@ #include "nsIDocument.h" #include "nsIPresShell.h" #include "nsIFrame.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); static NS_DEFINE_IID(kIFormControlIID, NS_IFORMCONTROL_IID); @@ -148,6 +149,10 @@ public: // should drop our (non ref-counted) reference to it void ReleaseForm(); +#ifdef DEBUG + nsresult SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; +#endif + void *mScriptObject; nsVoidArray mElements; }; @@ -169,8 +174,11 @@ NS_NewHTMLFormElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFormElement); + nsHTMLFormElement::nsHTMLFormElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFormElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mControls = new nsFormControlList(); @@ -180,6 +188,8 @@ nsHTMLFormElement::nsHTMLFormElement(nsIAtom* aTag) nsHTMLFormElement::~nsHTMLFormElement() { + MOZ_COUNT_DTOR(nsHTMLFormElement); + // set the controls to have no form PRUint32 numControls; GetElementCount(&numControls); @@ -622,16 +632,22 @@ nsHTMLFormElement::Item(PRUint32 aIndex, nsIDOMElement** aReturn) return NS_ERROR_FAILURE; } +//---------------------------------------------------------------------- + // nsFormControlList implementation, this could go away if there were a lightweight collection implementation somewhere +MOZ_DECL_CTOR_COUNTER(nsFormControlList); + nsFormControlList::nsFormControlList() { - mRefCnt = 0; + MOZ_COUNT_CTOR(nsFormControlList); + NS_INIT_REFCNT(); mScriptObject = nsnull; } nsFormControlList::~nsFormControlList() { + MOZ_COUNT_DTOR(nsFormControlList); Clear(); } @@ -748,3 +764,33 @@ nsFormControlList::NamedItem(const nsString& aName, nsIDOMNode** aReturn) return result; } +#ifdef DEBUG +nsresult +nsFormControlList::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + PRUint32 asize; + mElements.SizeOf(aSizer, &asize); + *aResult = sizeof(*this) - sizeof(mElements) + asize; + return NS_OK; +} +#endif + +NS_IMETHODIMP +nsHTMLFormElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mControls) { + PRBool recorded; + aSizer->RecordObject((void*) mControls, &recorded); + if (!recorded) { + PRUint32 controlSize; + mControls->SizeOf(aSizer, &controlSize); + aSizer->AddSize(nsHTMLAtoms::form_control_list, controlSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLFrameElement.cpp b/mozilla/content/html/content/src/nsHTMLFrameElement.cpp index f72b991612e..f6902a0b2c5 100644 --- a/mozilla/content/html/content/src/nsHTMLFrameElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFrameElement.cpp @@ -98,14 +98,18 @@ NS_NewHTMLFrameElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFrameElement); + nsHTMLFrameElement::nsHTMLFrameElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFrameElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLFrameElement::~nsHTMLFrameElement() { + MOZ_COUNT_DTOR(nsHTMLFrameElement); } NS_IMPL_ADDREF(nsHTMLFrameElement) @@ -241,3 +245,9 @@ nsHTMLFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFrameElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp b/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp index 13e54b90510..36df2b80a42 100644 --- a/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLFrameSetElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFrameSetElement); + nsHTMLFrameSetElement::nsHTMLFrameSetElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFrameSetElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLFrameSetElement::~nsHTMLFrameSetElement() { + MOZ_COUNT_DTOR(nsHTMLFrameSetElement); } NS_IMPL_ADDREF(nsHTMLFrameSetElement) @@ -210,3 +214,9 @@ nsHTMLFrameSetElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFrameSetElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLHRElement.cpp b/mozilla/content/html/content/src/nsHTMLHRElement.cpp index 95b1828219a..9636040ee4e 100644 --- a/mozilla/content/html/content/src/nsHTMLHRElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHRElement.cpp @@ -91,14 +91,18 @@ NS_NewHTMLHRElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHRElement); + nsHTMLHRElement::nsHTMLHRElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLHRElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLHRElement::~nsHTMLHRElement() { + MOZ_COUNT_DTOR(nsHTMLHRElement); } NS_IMPL_ADDREF(nsHTMLHRElement) @@ -304,3 +308,9 @@ nsHTMLHRElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHRElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLHeadElement.cpp b/mozilla/content/html/content/src/nsHTMLHeadElement.cpp index c7d9c5f170c..393d40b2168 100644 --- a/mozilla/content/html/content/src/nsHTMLHeadElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHeadElement.cpp @@ -84,14 +84,18 @@ NS_NewHTMLHeadElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHeadElement); + nsHTMLHeadElement::nsHTMLHeadElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLHeadElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLHeadElement::~nsHTMLHeadElement() { + MOZ_COUNT_DTOR(nsHTMLHeadElement); } NS_IMPL_ADDREF(nsHTMLHeadElement) @@ -180,3 +184,9 @@ nsHTMLHeadElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp b/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp index d0ac28eab83..87bd394537c 100644 --- a/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLHeadingElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHeadingElement); + nsHTMLHeadingElement::nsHTMLHeadingElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLHeadingElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLHeadingElement::~nsHTMLHeadingElement() { + MOZ_COUNT_DTOR(nsHTMLHeadingElement); } NS_IMPL_ADDREF(nsHTMLHeadingElement) @@ -204,3 +208,9 @@ nsHTMLHeadingElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadingElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp b/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp index eaaa54d0da0..06e3fe8230f 100644 --- a/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp @@ -89,13 +89,17 @@ NS_NewHTMLHtmlElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHtmlElement); + nsHTMLHtmlElement::nsHTMLHtmlElement() { + MOZ_COUNT_CTOR(nsHTMLHtmlElement); NS_INIT_REFCNT(); } nsHTMLHtmlElement::~nsHTMLHtmlElement() { + MOZ_COUNT_DTOR(nsHTMLHtmlElement); } NS_IMPL_ADDREF(nsHTMLHtmlElement) @@ -189,3 +193,9 @@ nsHTMLHtmlElement::HandleDOMEvent(nsIPresContext& aPresContext, return NS_OK; } + +NS_IMETHODIMP +nsHTMLHtmlElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp b/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp index 646aaa76c48..e27efd2dbc8 100644 --- a/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp @@ -110,14 +110,18 @@ NS_NewHTMLIFrameElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLIFrameElement); + nsHTMLIFrameElement::nsHTMLIFrameElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLIFrameElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLIFrameElement::~nsHTMLIFrameElement() { + MOZ_COUNT_DTOR(nsHTMLIFrameElement); } NS_IMPL_ADDREF(nsHTMLIFrameElement) @@ -304,3 +308,9 @@ nsHTMLIFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIFrameElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLImageElement.cpp b/mozilla/content/html/content/src/nsHTMLImageElement.cpp index f8a86b8cd2c..155a2e83382 100644 --- a/mozilla/content/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLImageElement.cpp @@ -147,8 +147,11 @@ NS_NewHTMLImageElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLImageElement); + nsHTMLImageElement::nsHTMLImageElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLImageElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mOwnerDocument = nsnull; @@ -156,6 +159,7 @@ nsHTMLImageElement::nsHTMLImageElement(nsIAtom* aTag) nsHTMLImageElement::~nsHTMLImageElement() { + MOZ_COUNT_DTOR(nsHTMLImageElement); NS_IF_RELEASE(mOwnerDocument); } @@ -576,3 +580,9 @@ nsHTMLImageElement::SetSrc(const nsString& aSrc) return result; } + +NS_IMETHODIMP +nsHTMLImageElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLInputElement.cpp b/mozilla/content/html/content/src/nsHTMLInputElement.cpp index e224f238231..e31ef6286a0 100644 --- a/mozilla/content/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInputElement.cpp @@ -16,6 +16,7 @@ * Corporation. Portions created by Netscape are Copyright (C) 1998 * Netscape Communications Corporation. All Rights Reserved. */ +#include "nsCOMPtr.h" #include "nsIDOMHTMLInputElement.h" #include "nsIDOMHTMLFormElement.h" #include "nsIScriptObjectOwner.h" @@ -36,7 +37,7 @@ #include "nsIFrame.h" #include "nsIFocusableContent.h" #include "nsIEventStateManager.h" -#include "nsCOMPtr.h" +#include "nsISizeOfHandler.h" // XXX align=left, hspace, vspace, border? other nav4 attrs @@ -161,8 +162,11 @@ NS_NewHTMLInputElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLInputElement); + nsHTMLInputElement::nsHTMLInputElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLInputElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mType = NS_FORM_INPUT_TEXT; // default value @@ -173,6 +177,7 @@ nsHTMLInputElement::nsHTMLInputElement(nsIAtom* aTag) nsHTMLInputElement::~nsHTMLInputElement() { + MOZ_COUNT_DTOR(nsHTMLInputElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -844,3 +849,22 @@ nsHTMLInputElement::GetType(PRInt32* aType) } + +NS_IMETHODIMP +nsHTMLInputElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLInsElement.cpp b/mozilla/content/html/content/src/nsHTMLInsElement.cpp index d5f969cab28..1484d136336 100644 --- a/mozilla/content/html/content/src/nsHTMLInsElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInsElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLInsElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLInsElement); + nsHTMLInsElement::nsHTMLInsElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLInsElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLInsElement::~nsHTMLInsElement() { + MOZ_COUNT_DTOR(nsHTMLInsElement); } NS_IMPL_ADDREF(nsHTMLInsElement) @@ -187,3 +191,9 @@ nsHTMLInsElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLInsElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp b/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp index b2c3fd2d3e6..1cf37104010 100644 --- a/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLIsIndexElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLIsIndexElement); + nsHTMLIsIndexElement::nsHTMLIsIndexElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLIsIndexElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLIsIndexElement::~nsHTMLIsIndexElement() { + MOZ_COUNT_DTOR(nsHTMLIsIndexElement); } NS_IMPL_ADDREF(nsHTMLIsIndexElement) @@ -193,3 +197,9 @@ nsHTMLIsIndexElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIsIndexElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLLIElement.cpp b/mozilla/content/html/content/src/nsHTMLLIElement.cpp index b6257eeb7b8..a3f724de0cd 100644 --- a/mozilla/content/html/content/src/nsHTMLLIElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLIElement.cpp @@ -87,14 +87,18 @@ NS_NewHTMLLIElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLIElement); + nsHTMLLIElement::nsHTMLLIElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLIElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLLIElement::~nsHTMLLIElement() { + MOZ_COUNT_DTOR(nsHTMLLIElement); } NS_IMPL_ADDREF(nsHTMLLIElement) @@ -229,3 +233,9 @@ nsHTMLLIElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLIElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLLabelElement.cpp b/mozilla/content/html/content/src/nsHTMLLabelElement.cpp index a5d74a69d16..98246fe2ea4 100644 --- a/mozilla/content/html/content/src/nsHTMLLabelElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLabelElement.cpp @@ -29,6 +29,7 @@ #include "nsIPresContext.h" #include "nsIFormControl.h" #include "nsIForm.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLLabelElementIID, NS_IDOMHTMLLABELELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -102,8 +103,11 @@ NS_NewHTMLLabelElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLabelElement); + nsHTMLLabelElement::nsHTMLLabelElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLabelElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -111,6 +115,7 @@ nsHTMLLabelElement::nsHTMLLabelElement(nsIAtom* aTag) nsHTMLLabelElement::~nsHTMLLabelElement() { + MOZ_COUNT_DTOR(nsHTMLLabelElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -297,3 +302,22 @@ nsHTMLLabelElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLabelElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLLegendElement.cpp b/mozilla/content/html/content/src/nsHTMLLegendElement.cpp index e80d28a4b37..8e1553aa185 100644 --- a/mozilla/content/html/content/src/nsHTMLLegendElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLegendElement.cpp @@ -28,6 +28,7 @@ #include "nsStyleConsts.h" #include "nsIPresContext.h" #include "nsIForm.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLLegendElementIID, NS_IDOMHTMLLEGENDELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -92,8 +93,11 @@ NS_NewHTMLLegendElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLegendElement); + nsHTMLLegendElement::nsHTMLLegendElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLegendElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -101,6 +105,7 @@ nsHTMLLegendElement::nsHTMLLegendElement(nsIAtom* aTag) nsHTMLLegendElement::~nsHTMLLegendElement() { + MOZ_COUNT_DTOR(nsHTMLLegendElement); if (mForm) { NS_RELEASE(mForm); } @@ -231,3 +236,22 @@ nsHTMLLegendElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLegendElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLLinkElement.cpp b/mozilla/content/html/content/src/nsHTMLLinkElement.cpp index 387c31cae5b..98af84a8c1c 100644 --- a/mozilla/content/html/content/src/nsHTMLLinkElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLinkElement.cpp @@ -111,8 +111,11 @@ NS_NewHTMLLinkElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLinkElement); + nsHTMLLinkElement::nsHTMLLinkElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLinkElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mStyleSheet = nsnull; @@ -120,6 +123,7 @@ nsHTMLLinkElement::nsHTMLLinkElement(nsIAtom* aTag) nsHTMLLinkElement::~nsHTMLLinkElement() { + MOZ_COUNT_DTOR(nsHTMLLinkElement); NS_IF_RELEASE(mStyleSheet); } @@ -282,3 +286,9 @@ nsHTMLLinkElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLinkElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLMapElement.cpp b/mozilla/content/html/content/src/nsHTMLMapElement.cpp index 84d0896b93f..75b39aecc79 100644 --- a/mozilla/content/html/content/src/nsHTMLMapElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLMapElement.cpp @@ -175,9 +175,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { return mInner.GetRangeList(aResult); } - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { - return mInner.SizeOf(aSizer, aResult, sizeof(*this)); - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; // nsIHTMLContent NS_IMPL_IHTMLCONTENT_USING_GENERIC(mInner) @@ -201,8 +199,11 @@ NS_NewHTMLMapElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLMapElement); + nsHTMLMapElement::nsHTMLMapElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLMapElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mAreas = nsnull; @@ -210,6 +211,7 @@ nsHTMLMapElement::nsHTMLMapElement(nsIAtom* aTag) nsHTMLMapElement::~nsHTMLMapElement() { + MOZ_COUNT_DTOR(nsHTMLMapElement); if (nsnull != mAreas) { mAreas->ParentDestroyed(); NS_RELEASE(mAreas); @@ -358,3 +360,20 @@ nsHTMLMapElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMapElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mAreas) { + PRUint32 asize; + mAreas->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLMenuElement.cpp b/mozilla/content/html/content/src/nsHTMLMenuElement.cpp index fd08afd9530..e85c6756108 100644 --- a/mozilla/content/html/content/src/nsHTMLMenuElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLMenuElement.cpp @@ -89,14 +89,18 @@ NS_NewHTMLMenuElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLMenuElement); + nsHTMLMenuElement::nsHTMLMenuElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLMenuElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLMenuElement::~nsHTMLMenuElement() { + MOZ_COUNT_DTOR(nsHTMLMenuElement); } NS_IMPL_ADDREF(nsHTMLMenuElement) @@ -223,3 +227,9 @@ nsHTMLMenuElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMenuElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLMetaElement.cpp b/mozilla/content/html/content/src/nsHTMLMetaElement.cpp index 1750902551f..d0b7de36b28 100644 --- a/mozilla/content/html/content/src/nsHTMLMetaElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLMetaElement.cpp @@ -90,14 +90,19 @@ NS_NewHTMLMetaElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLMetaElement); + nsHTMLMetaElement::nsHTMLMetaElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLMetaElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLMetaElement::~nsHTMLMetaElement() { + + MOZ_COUNT_DTOR(nsHTMLMetaElement); } NS_IMPL_ADDREF(nsHTMLMetaElement) @@ -191,3 +196,9 @@ nsHTMLMetaElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMetaElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLModElement.cpp b/mozilla/content/html/content/src/nsHTMLModElement.cpp index b65ecc61de1..6f85c6b66fb 100644 --- a/mozilla/content/html/content/src/nsHTMLModElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLModElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLModElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLModElement); + nsHTMLModElement::nsHTMLModElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLModElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLModElement::~nsHTMLModElement() { + MOZ_COUNT_DTOR(nsHTMLModElement); } NS_IMPL_ADDREF(nsHTMLModElement) @@ -188,3 +192,9 @@ nsHTMLModElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLModElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLOListElement.cpp b/mozilla/content/html/content/src/nsHTMLOListElement.cpp index 6312947eafd..19361a0b65a 100644 --- a/mozilla/content/html/content/src/nsHTMLOListElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLOListElement.cpp @@ -89,14 +89,18 @@ NS_NewHTMLOListElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLOListElement); + nsHTMLOListElement::nsHTMLOListElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLOListElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLOListElement::~nsHTMLOListElement() { + MOZ_COUNT_DTOR(nsHTMLOListElement); } NS_IMPL_ADDREF(nsHTMLOListElement) @@ -265,3 +269,9 @@ nsHTMLOListElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOListElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLObjectElement.cpp b/mozilla/content/html/content/src/nsHTMLObjectElement.cpp index c4a5191383d..b571490c1f3 100644 --- a/mozilla/content/html/content/src/nsHTMLObjectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLObjectElement.cpp @@ -117,14 +117,18 @@ NS_NewHTMLObjectElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLObjectElement); + nsHTMLObjectElement::nsHTMLObjectElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLObjectElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLObjectElement::~nsHTMLObjectElement() { + MOZ_COUNT_DTOR(nsHTMLObjectElement); } NS_IMPL_ADDREF(nsHTMLObjectElement) @@ -265,3 +269,9 @@ nsHTMLObjectElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLObjectElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp b/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp index c6f1be09d3d..d35b0d30272 100644 --- a/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLOptGroupElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLOptGroupElement); + nsHTMLOptGroupElement::nsHTMLOptGroupElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLOptGroupElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLOptGroupElement::~nsHTMLOptGroupElement() { + MOZ_COUNT_DTOR(nsHTMLOptGroupElement); } NS_IMPL_ADDREF(nsHTMLOptGroupElement) @@ -186,3 +190,9 @@ nsHTMLOptGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOptGroupElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLOptionElement.cpp b/mozilla/content/html/content/src/nsHTMLOptionElement.cpp index 71127a199bf..8e4df3b698f 100644 --- a/mozilla/content/html/content/src/nsHTMLOptionElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLOptionElement.cpp @@ -136,14 +136,18 @@ NS_NewHTMLOptionElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLOptionElement); + nsHTMLOptionElement::nsHTMLOptionElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLOptionElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLOptionElement::~nsHTMLOptionElement() { + MOZ_COUNT_DTOR(nsHTMLOptionElement); } // ISupports @@ -612,3 +616,9 @@ nsHTMLOptionElement::Initialize(JSContext* aContext, return result; } + +NS_IMETHODIMP +nsHTMLOptionElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp b/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp index 0427fd5974f..f344f8e0c2e 100644 --- a/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp @@ -91,13 +91,17 @@ NS_NewHTMLParagraphElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLParagraphElement); + nsHTMLParagraphElement::nsHTMLParagraphElement() { + MOZ_COUNT_CTOR(nsHTMLParagraphElement); NS_INIT_REFCNT(); } nsHTMLParagraphElement::~nsHTMLParagraphElement() { + MOZ_COUNT_DTOR(nsHTMLParagraphElement); } NS_IMPL_ADDREF(nsHTMLParagraphElement) @@ -213,3 +217,9 @@ nsHTMLParagraphElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParagraphElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLParamElement.cpp b/mozilla/content/html/content/src/nsHTMLParamElement.cpp index 744e3f39afa..79332d8b75d 100644 --- a/mozilla/content/html/content/src/nsHTMLParamElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLParamElement.cpp @@ -90,14 +90,18 @@ NS_NewHTMLParamElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLParamElement); + nsHTMLParamElement::nsHTMLParamElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLParamElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLParamElement::~nsHTMLParamElement() { + MOZ_COUNT_DTOR(nsHTMLParamElement); } NS_IMPL_ADDREF(nsHTMLParamElement) @@ -193,3 +197,9 @@ nsHTMLParamElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParamElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLPreElement.cpp b/mozilla/content/html/content/src/nsHTMLPreElement.cpp index 8ace87c074e..399bb417666 100644 --- a/mozilla/content/html/content/src/nsHTMLPreElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLPreElement.cpp @@ -87,14 +87,18 @@ NS_NewHTMLPreElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLPreElement); + nsHTMLPreElement::nsHTMLPreElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLPreElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLPreElement::~nsHTMLPreElement() { + MOZ_COUNT_DTOR(nsHTMLPreElement); } NS_IMPL_ADDREF(nsHTMLPreElement) @@ -274,3 +278,9 @@ nsHTMLPreElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLPreElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp b/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp index 6e160223aca..494193519ef 100644 --- a/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp @@ -84,14 +84,18 @@ NS_NewHTMLQuoteElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLQuoteElement); + nsHTMLQuoteElement::nsHTMLQuoteElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLQuoteElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLQuoteElement::~nsHTMLQuoteElement() { + MOZ_COUNT_DTOR(nsHTMLQuoteElement); } NS_IMPL_ADDREF(nsHTMLQuoteElement) @@ -183,3 +187,9 @@ nsHTMLQuoteElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLQuoteElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLScriptElement.cpp b/mozilla/content/html/content/src/nsHTMLScriptElement.cpp index 5b52f373cfc..8422e697705 100644 --- a/mozilla/content/html/content/src/nsHTMLScriptElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLScriptElement.cpp @@ -97,14 +97,18 @@ NS_NewHTMLScriptElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLScriptElement); + nsHTMLScriptElement::nsHTMLScriptElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLScriptElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLScriptElement::~nsHTMLScriptElement() { + MOZ_COUNT_DTOR(nsHTMLScriptElement); } NS_IMPL_ADDREF(nsHTMLScriptElement) @@ -244,3 +248,18 @@ nsHTMLScriptElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLScriptElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mText.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mText) + ssize; + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLSelectElement.cpp b/mozilla/content/html/content/src/nsHTMLSelectElement.cpp index 036fb478d1d..1742e073adf 100644 --- a/mozilla/content/html/content/src/nsHTMLSelectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSelectElement.cpp @@ -16,6 +16,7 @@ * Corporation. Portions created by Netscape are Copyright (C) 1998 * Netscape Communications Corporation. All Rights Reserved. */ +#include "nsCOMPtr.h" #include "nsIDOMHTMLSelectElement.h" #include "nsIDOMNSHTMLSelectElement.h" #include "nsIDOMHTMLFormElement.h" @@ -39,7 +40,7 @@ #include "nsIJSScriptObject.h" #include "nsISelectElement.h" #include "nsISelectControlFrame.h" -#include "nsCOMPtr.h" +#include "nsISizeOfHandler.h" // Notify/query select frame for selectedIndex #include "nsIDocument.h" @@ -202,8 +203,11 @@ NS_NewHTMLSelectElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLSelectElement); + nsHTMLSelectElement::nsHTMLSelectElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLSelectElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mOptions = nsnull; @@ -212,6 +216,7 @@ nsHTMLSelectElement::nsHTMLSelectElement(nsIAtom* aTag) nsHTMLSelectElement::~nsHTMLSelectElement() { + MOZ_COUNT_DTOR(nsHTMLSelectElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -837,6 +842,8 @@ nsHTMLSelectElement::Init() return NS_OK; } +//---------------------------------------------------------------------- + // nsOptionList implementation // XXX this was modified form nsHTMLFormElement.cpp. We need a base class implementation @@ -869,8 +876,11 @@ nsOptionList::GetOptions() mDirty = PR_FALSE; } +MOZ_DECL_CTOR_COUNTER(nsOptionList); + nsOptionList::nsOptionList(nsHTMLSelectElement* aSelect) { + MOZ_COUNT_CTOR(nsOptionList); mDirty = PR_TRUE; // Do not maintain a reference counted reference. When // the select goes away, it will let us know. @@ -879,6 +889,7 @@ nsOptionList::nsOptionList(nsHTMLSelectElement* aSelect) nsOptionList::~nsOptionList() { + MOZ_COUNT_DTOR(nsOptionList); DropReference(); } @@ -1131,3 +1142,22 @@ nsOptionList::Clear() mElements.Clear(); } + +NS_IMETHODIMP +nsHTMLSelectElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp b/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp index c4a5191383d..b571490c1f3 100644 --- a/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp @@ -117,14 +117,18 @@ NS_NewHTMLObjectElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLObjectElement); + nsHTMLObjectElement::nsHTMLObjectElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLObjectElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLObjectElement::~nsHTMLObjectElement() { + MOZ_COUNT_DTOR(nsHTMLObjectElement); } NS_IMPL_ADDREF(nsHTMLObjectElement) @@ -265,3 +269,9 @@ nsHTMLObjectElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLObjectElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp b/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp index 83a3ade8301..b8167b633c7 100644 --- a/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp @@ -83,14 +83,18 @@ NS_NewHTMLSpacerElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLSpacerElement); + nsHTMLSpacerElement::nsHTMLSpacerElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLSpacerElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLSpacerElement::~nsHTMLSpacerElement() { + MOZ_COUNT_DTOR(nsHTMLSpacerElement); } NS_IMPL_ADDREF(nsHTMLSpacerElement) @@ -242,3 +246,9 @@ nsHTMLSpacerElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpacerElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLSpanElement.cpp b/mozilla/content/html/content/src/nsHTMLSpanElement.cpp index aca2a1ae854..383b412ac0e 100644 --- a/mozilla/content/html/content/src/nsHTMLSpanElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSpanElement.cpp @@ -78,14 +78,18 @@ NS_NewHTMLSpanElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLSpanElement); + nsHTMLSpanElement::nsHTMLSpanElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLSpanElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLSpanElement::~nsHTMLSpanElement() { + MOZ_COUNT_DTOR(nsHTMLSpanElement); } NS_IMPL_ADDREF(nsHTMLSpanElement) @@ -169,3 +173,9 @@ nsHTMLSpanElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpanElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLStyleElement.cpp b/mozilla/content/html/content/src/nsHTMLStyleElement.cpp index 5e2d572e0cf..13891d1e068 100644 --- a/mozilla/content/html/content/src/nsHTMLStyleElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLStyleElement.cpp @@ -101,8 +101,11 @@ NS_NewHTMLStyleElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLStyleElement); + nsHTMLStyleElement::nsHTMLStyleElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLStyleElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mStyleSheet = nsnull; @@ -110,6 +113,7 @@ nsHTMLStyleElement::nsHTMLStyleElement(nsIAtom* aTag) nsHTMLStyleElement::~nsHTMLStyleElement() { + MOZ_COUNT_DTOR(nsHTMLStyleElement); NS_IF_RELEASE(mStyleSheet); } @@ -266,3 +270,9 @@ nsHTMLStyleElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLStyleElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp b/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp index 8b2c0f2dc8d..4e6dbd8d836 100644 --- a/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLTableCaptionElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableCaptionElement); + nsHTMLTableCaptionElement::nsHTMLTableCaptionElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableCaptionElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTableCaptionElement::~nsHTMLTableCaptionElement() { + MOZ_COUNT_DTOR(nsHTMLTableCaptionElement); } NS_IMPL_ADDREF(nsHTMLTableCaptionElement) @@ -215,3 +219,9 @@ nsHTMLTableCaptionElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCaptionElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp b/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp index 725593c08f4..293740511bb 100644 --- a/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp @@ -131,8 +131,11 @@ NS_NewHTMLTableCellElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableCellElement); + nsHTMLTableCellElement::nsHTMLTableCellElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableCellElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mColIndex=0; @@ -140,6 +143,7 @@ nsHTMLTableCellElement::nsHTMLTableCellElement(nsIAtom* aTag) nsHTMLTableCellElement::~nsHTMLTableCellElement() { + MOZ_COUNT_DTOR(nsHTMLTableCellElement); } NS_IMPL_ADDREF(nsHTMLTableCellElement) @@ -547,3 +551,9 @@ nsHTMLTableCellElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCellElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLTableColElement.cpp b/mozilla/content/html/content/src/nsHTMLTableColElement.cpp index a0d4ad97121..b03576bb77b 100644 --- a/mozilla/content/html/content/src/nsHTMLTableColElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableColElement.cpp @@ -101,14 +101,18 @@ NS_NewHTMLTableColElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableColElement); + nsHTMLTableColElement::nsHTMLTableColElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableColElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTableColElement::~nsHTMLTableColElement() { + MOZ_COUNT_DTOR(nsHTMLTableColElement); } NS_IMPL_ADDREF(nsHTMLTableColElement) @@ -339,3 +343,9 @@ NS_METHOD nsHTMLTableColElement::GetSpanValue(PRInt32* aSpan) return NS_OK; } + +NS_IMETHODIMP +nsHTMLTableColElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp b/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp index 1c1eeaa9a19..33e79c513fe 100644 --- a/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp @@ -95,14 +95,18 @@ NS_NewHTMLTableColGroupElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTa return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableColGroupElement); + nsHTMLTableColGroupElement::nsHTMLTableColGroupElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableColGroupElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTableColGroupElement::~nsHTMLTableColGroupElement() { + MOZ_COUNT_DTOR(nsHTMLTableColGroupElement); } NS_IMPL_ADDREF(nsHTMLTableColGroupElement) @@ -306,3 +310,9 @@ nsHTMLTableColGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableColGroupElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLTableElement.cpp b/mozilla/content/html/content/src/nsHTMLTableElement.cpp index 76acd0e6645..8be2b0596e3 100644 --- a/mozilla/content/html/content/src/nsHTMLTableElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableElement.cpp @@ -139,18 +139,28 @@ public: NS_IMETHOD ParentDestroyed(); +#ifdef DEBUG + void SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + *aResult = sizeof(*this); + } +#endif + protected: nsHTMLTableElement * mParent; }; +MOZ_DECL_CTOR_COUNTER(TableRowsCollection); + TableRowsCollection::TableRowsCollection(nsHTMLTableElement *aParent) : nsGenericDOMHTMLCollection() { + MOZ_COUNT_CTOR(TableRowsCollection); mParent = aParent; } TableRowsCollection::~TableRowsCollection() { + MOZ_COUNT_DTOR(TableRowsCollection); // we do NOT have a ref-counted reference to mParent, so do NOT release it! // this is to avoid circular references. The instantiator who provided mParent // is responsible for managing our reference for us. @@ -325,8 +335,11 @@ NS_NewHTMLTableElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableElement); + nsHTMLTableElement::nsHTMLTableElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mTBodies=nsnull; @@ -335,6 +348,7 @@ nsHTMLTableElement::nsHTMLTableElement(nsIAtom* aTag) nsHTMLTableElement::~nsHTMLTableElement() { + MOZ_COUNT_DTOR(nsHTMLTableElement); if (nsnull!=mTBodies) { mTBodies->ParentDestroyed(); @@ -1287,3 +1301,25 @@ nsHTMLTableElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mTBodies) { + PRUint32 asize; + mTBodies->SizeOf(aSizer, &asize); + sum += asize; + } + if (mRows) { + PRUint32 asize; + mRows->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp b/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp index bfc1a3a8108..66136442d2f 100644 --- a/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp @@ -54,14 +54,24 @@ public: nsTableCellCollection(nsIContent* aParent, nsIAtom* aTag); + ~nsTableCellCollection(); + NS_IMETHOD GetLength(PRUint32* aLength); NS_IMETHOD Item(PRUint32 aIndex, nsIDOMNode** aReturn); }; +MOZ_DECL_CTOR_COUNTER(nsTableCellCollection); + nsTableCellCollection::nsTableCellCollection(nsIContent* aParent, nsIAtom* aTag) : GenericElementCollection(aParent, aTag) { + MOZ_COUNT_CTOR(nsTableCellCollection); +} + +nsTableCellCollection::~nsTableCellCollection() +{ + MOZ_COUNT_DTOR(nsTableCellCollection); } NS_IMETHODIMP @@ -124,6 +134,8 @@ nsTableCellCollection::Item(PRUint32 aIndex, return rv; } +//---------------------------------------------------------------------- + class nsHTMLTableRowElement : public nsIDOMHTMLTableRowElement, public nsIScriptObjectOwner, public nsIDOMEventReceiver, @@ -227,8 +239,11 @@ NS_NewHTMLTableRowElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableRowElement); + nsHTMLTableRowElement::nsHTMLTableRowElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableRowElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mCells = nsnull; @@ -236,6 +251,7 @@ nsHTMLTableRowElement::nsHTMLTableRowElement(nsIAtom* aTag) nsHTMLTableRowElement::~nsHTMLTableRowElement() { + MOZ_COUNT_DTOR(nsHTMLTableRowElement); if (nsnull != mCells) { mCells->ParentDestroyed(); NS_RELEASE(mCells); @@ -726,3 +742,20 @@ nsHTMLTableRowElement::HandleDOMEvent(nsIPresContext& aPresContext, + +NS_IMETHODIMP +nsHTMLTableRowElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mCells) { + PRUint32 asize; + mCells->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp b/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp index 8eeb17117b5..c08391cd6e3 100644 --- a/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp @@ -36,9 +36,9 @@ static NS_DEFINE_IID(kIDOMHTMLCollectionIID, NS_IDOMHTMLCOLLECTION_IID); // you will see the phrases "rowgroup" and "section" used interchangably class nsHTMLTableSectionElement : public nsIDOMHTMLTableSectionElement, - public nsIScriptObjectOwner, - public nsIDOMEventReceiver, - public nsIHTMLContent + public nsIScriptObjectOwner, + public nsIDOMEventReceiver, + public nsIHTMLContent { public: nsHTMLTableSectionElement(nsIAtom* aTag); @@ -100,8 +100,11 @@ NS_NewHTMLTableSectionElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableSectionElement); + nsHTMLTableSectionElement::nsHTMLTableSectionElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableSectionElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mRows = nsnull; @@ -109,6 +112,7 @@ nsHTMLTableSectionElement::nsHTMLTableSectionElement(nsIAtom* aTag) nsHTMLTableSectionElement::~nsHTMLTableSectionElement() { + MOZ_COUNT_DTOR(nsHTMLTableSectionElement); if (nsnull!=mRows) { mRows->ParentDestroyed(); NS_RELEASE(mRows); @@ -368,3 +372,20 @@ nsHTMLTableSectionElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableSectionElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mRows) { + PRUint32 asize; + mRows->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp b/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp index 22ad55876fa..4652ff46755 100644 --- a/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp @@ -33,6 +33,7 @@ #include "nsIFormControlFrame.h" #include "nsIFocusableContent.h" #include "nsIEventStateManager.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLTextAreaElementIID, NS_IDOMHTMLTEXTAREAELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -128,8 +129,11 @@ NS_NewHTMLTextAreaElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTextAreaElement); + nsHTMLTextAreaElement::nsHTMLTextAreaElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTextAreaElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -137,6 +141,7 @@ nsHTMLTextAreaElement::nsHTMLTextAreaElement(nsIAtom* aTag) nsHTMLTextAreaElement::~nsHTMLTextAreaElement() { + MOZ_COUNT_DTOR(nsHTMLTextAreaElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -492,3 +497,22 @@ nsHTMLTextAreaElement::SetForm(nsIDOMHTMLFormElement* aForm) } return result; } + +NS_IMETHODIMP +nsHTMLTextAreaElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/content/html/content/src/nsHTMLTitleElement.cpp b/mozilla/content/html/content/src/nsHTMLTitleElement.cpp index 6a9489dd4aa..ffa9e942a0e 100644 --- a/mozilla/content/html/content/src/nsHTMLTitleElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTitleElement.cpp @@ -90,14 +90,18 @@ NS_NewHTMLTitleElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTitleElement); + nsHTMLTitleElement::nsHTMLTitleElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTitleElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTitleElement::~nsHTMLTitleElement() { + MOZ_COUNT_DTOR(nsHTMLTitleElement); } NS_IMPL_ADDREF(nsHTMLTitleElement) @@ -238,3 +242,9 @@ nsHTMLTitleElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTitleElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLUListElement.cpp b/mozilla/content/html/content/src/nsHTMLUListElement.cpp index b73f7652f2b..af1eb7af607 100644 --- a/mozilla/content/html/content/src/nsHTMLUListElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLUListElement.cpp @@ -90,14 +90,18 @@ NS_NewHTMLUListElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLUListElement); + nsHTMLUListElement::nsHTMLUListElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLUListElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLUListElement::~nsHTMLUListElement() { + MOZ_COUNT_DTOR(nsHTMLUListElement); } NS_IMPL_ADDREF(nsHTMLUListElement) @@ -243,3 +247,9 @@ nsHTMLUListElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLUListElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/html/content/src/nsHTMLWBRElement.cpp b/mozilla/content/html/content/src/nsHTMLWBRElement.cpp index 743c51155c9..61cff1dc44f 100644 --- a/mozilla/content/html/content/src/nsHTMLWBRElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLWBRElement.cpp @@ -82,14 +82,18 @@ NS_NewHTMLWBRElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLWBRElement); + nsHTMLWBRElement::nsHTMLWBRElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLWBRElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLWBRElement::~nsHTMLWBRElement() { + MOZ_COUNT_DTOR(nsHTMLWBRElement); } NS_IMPL_ADDREF(nsHTMLWBRElement) @@ -179,3 +183,9 @@ nsHTMLWBRElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLWBRElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/content/xml/content/src/nsXMLCDATASection.cpp b/mozilla/content/xml/content/src/nsXMLCDATASection.cpp index 1dddcd61bf0..e8b6c922ba2 100644 --- a/mozilla/content/xml/content/src/nsXMLCDATASection.cpp +++ b/mozilla/content/xml/content/src/nsXMLCDATASection.cpp @@ -64,6 +64,10 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); + } + // nsITextContent NS_IMPL_ITEXTCONTENT_USING_GENERIC_DOM_DATA(mInner) @@ -86,8 +90,11 @@ NS_NewXMLCDATASection(nsIContent** aInstancePtrResult) return it->QueryInterface(kIContentIID, (void **) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsXMLCDATASection); + nsXMLCDATASection::nsXMLCDATASection() { + MOZ_COUNT_CTOR(nsXMLCDATASection); NS_INIT_REFCNT(); mInner.Init(this); mContentID = 0; @@ -95,6 +102,7 @@ nsXMLCDATASection::nsXMLCDATASection() nsXMLCDATASection::~nsXMLCDATASection() { + MOZ_COUNT_DTOR(nsXMLCDATASection); } NS_IMPL_ADDREF(nsXMLCDATASection) diff --git a/mozilla/content/xml/content/src/nsXMLEntity.cpp b/mozilla/content/xml/content/src/nsXMLEntity.cpp index be071e07cec..d2bbba97e87 100644 --- a/mozilla/content/xml/content/src/nsXMLEntity.cpp +++ b/mozilla/content/xml/content/src/nsXMLEntity.cpp @@ -62,6 +62,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -312,3 +314,23 @@ nsXMLEntity::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + +NS_IMETHODIMP +nsXMLEntity::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mName) + ssize; + mPublicId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mPublicId) + ssize; + mSystemId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mSystemId) + ssize; + mNotationName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mNotationName) + ssize; +#endif + return NS_OK; +} diff --git a/mozilla/content/xml/content/src/nsXMLNotation.cpp b/mozilla/content/xml/content/src/nsXMLNotation.cpp index a11e6a1d1e0..05900e6320a 100644 --- a/mozilla/content/xml/content/src/nsXMLNotation.cpp +++ b/mozilla/content/xml/content/src/nsXMLNotation.cpp @@ -62,6 +62,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -295,3 +297,21 @@ nsXMLNotation::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + +NS_IMETHODIMP +nsXMLNotation::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mName) + ssize; + mPublicId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mPublicId) + ssize; + mSystemId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mSystemId) + ssize; +#endif + return NS_OK; +} diff --git a/mozilla/content/xml/content/src/nsXMLProcessingInstruction.cpp b/mozilla/content/xml/content/src/nsXMLProcessingInstruction.cpp index e72b7bc5c10..2614595244d 100644 --- a/mozilla/content/xml/content/src/nsXMLProcessingInstruction.cpp +++ b/mozilla/content/xml/content/src/nsXMLProcessingInstruction.cpp @@ -61,6 +61,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -285,3 +287,19 @@ nsXMLProcessingInstruction::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + + +NS_IMETHODIMP +nsXMLProcessingInstruction::SizeOf(nsISizeOfHandler* aSizer, + PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mTarget.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mTarget) + ssize; +#endif + return NS_OK; +} diff --git a/mozilla/layout/base/src/nsDOMAttributeMap.cpp b/mozilla/layout/base/src/nsDOMAttributeMap.cpp index 35b0a1c00aa..1168fa0cf18 100644 --- a/mozilla/layout/base/src/nsDOMAttributeMap.cpp +++ b/mozilla/layout/base/src/nsDOMAttributeMap.cpp @@ -470,3 +470,37 @@ nsDOMAttributeMap::GetLength(PRUint32 *aLength) } return rv; } + +#ifdef DEBUG +PR_STATIC_CALLBACK (PRIntn) +SizeAttributes(PLHashEntry* he, PRIntn i, void* arg) +{ + char* str = (char*)he->key; + PRUint32 size = sizeof(PLHashEntry); + if (str) { + size += PL_strlen(str) + 1; + } + PRUint32* sump = (PRUint32*) arg; + *sump = *sump + size; + return HT_ENUMERATE_NEXT; +} + +nsresult +nsDOMAttributeMap::SizeOfNamedNodeMap(nsIDOMNamedNodeMap* aMap, + nsISizeOfHandler* aSizer, + PRUint32* aResult) +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + nsDOMAttributeMap* map = (nsDOMAttributeMap*) aMap; + PRUint32 sum = sizeof(nsDOMAttributeMap); + if (map->mAttributes) { + sum += sizeof(*map->mAttributes); + PRUint32 esize = 0; + PL_HashTableEnumerateEntries(map->mAttributes, SizeAttributes, + (void*) &esize); + sum += esize; + } + *aResult = sum; + return NS_OK; +} +#endif diff --git a/mozilla/layout/base/src/nsDOMAttributeMap.h b/mozilla/layout/base/src/nsDOMAttributeMap.h index 4473e3471ee..6c4db4d3a45 100644 --- a/mozilla/layout/base/src/nsDOMAttributeMap.h +++ b/mozilla/layout/base/src/nsDOMAttributeMap.h @@ -49,6 +49,12 @@ public: void DropReference(); +#ifdef DEBUG + static nsresult SizeOfNamedNodeMap(nsIDOMNamedNodeMap* aMap, + nsISizeOfHandler* aSizer, + PRUint32* aResult); +#endif + protected: nsresult GetNamedItemCommon(const nsString& aAttrName, PRInt32 aNameSpaceID, diff --git a/mozilla/layout/base/src/nsGenericDOMDataNode.h b/mozilla/layout/base/src/nsGenericDOMDataNode.h index 89f29b2d164..998afbb0d22 100644 --- a/mozilla/layout/base/src/nsGenericDOMDataNode.h +++ b/mozilla/layout/base/src/nsGenericDOMDataNode.h @@ -478,9 +478,6 @@ struct nsGenericDOMDataNode { } \ NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ - } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ } /** diff --git a/mozilla/layout/base/src/nsGenericElement.h b/mozilla/layout/base/src/nsGenericElement.h index 19cf519b119..772281c896c 100644 --- a/mozilla/layout/base/src/nsGenericElement.h +++ b/mozilla/layout/base/src/nsGenericElement.h @@ -531,9 +531,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; #define NS_IMPL_ICONTENT_NO_SETPARENT_USING_GENERIC(_g) \ NS_IMETHOD GetDocument(nsIDocument*& aResult) const { \ @@ -642,9 +640,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; #define NS_IMPL_ICONTENT_NO_SETDOCUMENT_USING_GENERIC(_g) \ NS_IMETHOD GetDocument(nsIDocument*& aResult) const { \ @@ -753,9 +749,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; #define NS_IMPL_ICONTENT_NO_SETPARENT_NO_SETDOCUMENT_USING_GENERIC(_g) \ NS_IMETHOD GetDocument(nsIDocument*& aResult) const { \ @@ -862,9 +856,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { \ return _g.GetRangeList(aResult); \ } \ - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { \ - return _g.SizeOf(aSizer, aResult, sizeof(*this)); \ - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; /** * Implement the nsIScriptObjectOwner API by forwarding the methods to a diff --git a/mozilla/layout/base/src/nsTextNode.cpp b/mozilla/layout/base/src/nsTextNode.cpp index 5a7ab892aaa..ff9b33eab90 100644 --- a/mozilla/layout/base/src/nsTextNode.cpp +++ b/mozilla/layout/base/src/nsTextNode.cpp @@ -62,6 +62,10 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); + } + // nsITextContent NS_IMPL_ITEXTCONTENT_USING_GENERIC_DOM_DATA(mInner) diff --git a/mozilla/layout/html/content/public/nsIForm.h b/mozilla/layout/html/content/public/nsIForm.h index ad395a1a839..0e8f30a63e4 100644 --- a/mozilla/layout/html/content/public/nsIForm.h +++ b/mozilla/layout/html/content/public/nsIForm.h @@ -20,6 +20,7 @@ #include "nsISupports.h" class nsIFormControl; +class nsISizeOfHandler; #define NS_FORM_METHOD_GET 0 #define NS_FORM_METHOD_POST 1 @@ -31,10 +32,11 @@ class nsIFormControl; { 0xb7e94510, 0x4c19, 0x11d2, \ { 0x80, 0x3f, 0x0, 0x60, 0x8, 0x15, 0xa7, 0x91 } } -/** - * This interface provides a complete set of methods dealing with elements which - * belong to a form element. When nsIDOMHTMLCollection allows write operations - **/ +/** + * This interface provides a complete set of methods dealing with + * elements which belong to a form element. When nsIDOMHTMLCollection + * allows write operations + */ class nsIForm : public nsISupports { public: @@ -70,6 +72,7 @@ public: NS_IMETHOD RemoveElement(nsIFormControl* aElement, PRBool aChildIsRef = PR_TRUE) = 0; + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const = 0; }; #endif /* nsIForm_h___ */ diff --git a/mozilla/layout/html/content/src/GenericElementCollection.cpp b/mozilla/layout/html/content/src/GenericElementCollection.cpp index 1622efc9f36..61c9e1a42ee 100644 --- a/mozilla/layout/html/content/src/GenericElementCollection.cpp +++ b/mozilla/layout/html/content/src/GenericElementCollection.cpp @@ -126,3 +126,13 @@ GenericElementCollection::ParentDestroyed() return NS_OK; } +#ifdef DEBUG +nsresult +GenericElementCollection::SizeOf(nsISizeOfHandler* aSizer, + PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + *aResult = sizeof(*this); + return NS_OK; +} +#endif diff --git a/mozilla/layout/html/content/src/GenericElementCollection.h b/mozilla/layout/html/content/src/GenericElementCollection.h index 4a1b3cab0db..8e0462283ca 100644 --- a/mozilla/layout/html/content/src/GenericElementCollection.h +++ b/mozilla/layout/html/content/src/GenericElementCollection.h @@ -43,6 +43,10 @@ public: NS_IMETHOD ParentDestroyed(); +#ifdef DEBUG + nsresult SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; +#endif + protected: nsIContent * mParent; nsIAtom * mTag; diff --git a/mozilla/layout/html/content/src/nsAttributeContent.cpp b/mozilla/layout/html/content/src/nsAttributeContent.cpp index 4565b4c7993..f5de1bea8b9 100644 --- a/mozilla/layout/html/content/src/nsAttributeContent.cpp +++ b/mozilla/layout/html/content/src/nsAttributeContent.cpp @@ -131,17 +131,7 @@ public: NS_IMETHOD GetAttributeCount(PRInt32& aResult) const { aResult = 0; return NS_OK; } NS_IMETHOD List(FILE* out, PRInt32 aIndent) const { return NS_OK; } - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { - if (!aResult) { - return NS_ERROR_NULL_POINTER; - } -#ifdef DEBUG - *aResult = sizeof(*this); -#else - *aResult = 0; -#endif - return NS_OK; - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; NS_IMETHOD HandleDOMEvent(nsIPresContext& aPresContext, nsEvent* aEvent, nsIDOMEvent** aDOMEvent, @@ -548,3 +538,11 @@ nsAttributeContent::IsOnlyWhitespace(PRBool* aResult) *aResult = PR_TRUE; return NS_OK; } + +NS_IMETHODIMP +nsAttributeContent::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + *aResult = sizeof(*this); + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsGenericDOMHTMLCollection.cpp b/mozilla/layout/html/content/src/nsGenericDOMHTMLCollection.cpp index a76f71e1477..3af07046a79 100644 --- a/mozilla/layout/html/content/src/nsGenericDOMHTMLCollection.cpp +++ b/mozilla/layout/html/content/src/nsGenericDOMHTMLCollection.cpp @@ -19,14 +19,18 @@ #include "nsGenericDOMHTMLCollection.h" +MOZ_DECL_CTOR_COUNTER(nsGenericDOMHTMLCollection); + nsGenericDOMHTMLCollection::nsGenericDOMHTMLCollection() { + MOZ_COUNT_CTOR(nsGenericDOMHTMLCollection); mRefCnt = 0; mScriptObject = nsnull; } nsGenericDOMHTMLCollection::~nsGenericDOMHTMLCollection() { + MOZ_COUNT_DTOR(nsGenericDOMHTMLCollection); } nsresult diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp index f50ec00c9a6..c41be6b6250 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp @@ -114,8 +114,12 @@ protected: nsIHTMLContent *mContent; }; +MOZ_DECL_CTOR_COUNTER(nsDOMCSSAttributeDeclaration); + nsDOMCSSAttributeDeclaration::nsDOMCSSAttributeDeclaration(nsIHTMLContent *aContent) { + MOZ_COUNT_CTOR(nsDOMCSSAttributeDeclaration); + // This reference is not reference-counted. The content // object tells us when its about to go away. mContent = aContent; @@ -123,6 +127,7 @@ nsDOMCSSAttributeDeclaration::nsDOMCSSAttributeDeclaration(nsIHTMLContent *aCont nsDOMCSSAttributeDeclaration::~nsDOMCSSAttributeDeclaration() { + MOZ_COUNT_DTOR(nsDOMCSSAttributeDeclaration); } void @@ -2919,4 +2924,3 @@ nsGenericHTMLContainerElement::RemoveChildAt(PRInt32 aIndex, PRBool aNotify) return NS_OK; } - diff --git a/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp b/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp index efbce463a7d..9b8bc77c21d 100644 --- a/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp @@ -126,14 +126,18 @@ NS_NewHTMLAnchorElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLAnchorElement); + nsHTMLAnchorElement::nsHTMLAnchorElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLAnchorElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLAnchorElement::~nsHTMLAnchorElement() { + MOZ_COUNT_DTOR(nsHTMLAnchorElement); } NS_IMPL_ADDREF(nsHTMLAnchorElement) @@ -426,3 +430,9 @@ nsHTMLAnchorElement::SetHref(const nsString& aValue) { return mInner.SetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, aValue, PR_TRUE); } + +NS_IMETHODIMP +nsHTMLAnchorElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp b/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp index ffd3ab2fa78..1d70a6be5f5 100644 --- a/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp @@ -125,8 +125,11 @@ NS_NewHTMLAppletElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLAppletElement); + nsHTMLAppletElement::nsHTMLAppletElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLAppletElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mReflectedApplet = PR_FALSE; @@ -134,6 +137,7 @@ nsHTMLAppletElement::nsHTMLAppletElement(nsIAtom* aTag) nsHTMLAppletElement::~nsHTMLAppletElement() { + MOZ_COUNT_DTOR(nsHTMLAppletElement); } NS_IMPL_ADDREF(nsHTMLAppletElement) @@ -341,3 +345,9 @@ nsHTMLAppletElement::SetScriptObject(void *aScriptObject) { return mInner.SetScriptObject(aScriptObject); } + +NS_IMETHODIMP +nsHTMLAppletElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp b/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp index 954ab33a3f7..153aa4b7567 100644 --- a/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp @@ -106,14 +106,18 @@ NS_NewHTMLAreaElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLAreaElement); + nsHTMLAreaElement::nsHTMLAreaElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLAreaElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLAreaElement::~nsHTMLAreaElement() { + MOZ_COUNT_DTOR(nsHTMLAreaElement); } NS_IMPL_ADDREF(nsHTMLAreaElement) @@ -245,3 +249,9 @@ nsHTMLAreaElement::RemoveFocus(nsIPresContext* aPresContext) return NS_OK; } + +NS_IMETHODIMP +nsHTMLAreaElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLBRElement.cpp b/mozilla/layout/html/content/src/nsHTMLBRElement.cpp index 1474861986e..1c64346cc09 100644 --- a/mozilla/layout/html/content/src/nsHTMLBRElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBRElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLBRElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBRElement); + nsHTMLBRElement::nsHTMLBRElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBRElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBRElement::~nsHTMLBRElement() { + MOZ_COUNT_DTOR(nsHTMLBRElement); } NS_IMPL_ADDREF(nsHTMLBRElement) @@ -212,3 +216,9 @@ nsHTMLBRElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBRElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp b/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp index f14127690ff..2f8420c358e 100644 --- a/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLBaseElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBaseElement); + nsHTMLBaseElement::nsHTMLBaseElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBaseElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBaseElement::~nsHTMLBaseElement() { + MOZ_COUNT_DTOR(nsHTMLBaseElement); } NS_IMPL_ADDREF(nsHTMLBaseElement) @@ -182,3 +186,9 @@ nsHTMLBaseElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp b/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp index 9503166a1e2..d0a471cdc89 100644 --- a/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp @@ -88,14 +88,18 @@ NS_NewHTMLBaseFontElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBaseFontElement); + nsHTMLBaseFontElement::nsHTMLBaseFontElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBaseFontElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBaseFontElement::~nsHTMLBaseFontElement() { + MOZ_COUNT_DTOR(nsHTMLBaseFontElement); } NS_IMPL_ADDREF(nsHTMLBaseFontElement) @@ -202,3 +206,9 @@ nsHTMLBaseFontElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseFontElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp b/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp index be27d407bff..253f188d1af 100644 --- a/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp @@ -116,15 +116,19 @@ public: BodyFixupRule* mInlineStyleRule; }; +MOZ_DECL_CTOR_COUNTER(nsBodyInner); + nsBodyInner::nsBodyInner() : nsGenericHTMLContainerElement(), mContentStyleRule(nsnull), mInlineStyleRule(nsnull) { + MOZ_COUNT_CTOR(nsBodyInner); } nsBodyInner::~nsBodyInner() { + MOZ_COUNT_DTOR(nsBodyInner); if (nsnull != mContentStyleRule) { mContentStyleRule->mPart = nsnull; mContentStyleRule->mSheet = nsnull; @@ -211,8 +215,11 @@ friend class BodyFixupRule; //---------------------------------------------------------------------- +MOZ_DECL_CTOR_COUNTER(BodyRule); + BodyRule::BodyRule(nsHTMLBodyElement* aPart, nsIHTMLStyleSheet* aSheet) { + MOZ_COUNT_CTOR(BodyRule); NS_INIT_REFCNT(); mPart = aPart; mSheet = aSheet; @@ -220,6 +227,7 @@ BodyRule::BodyRule(nsHTMLBodyElement* aPart, nsIHTMLStyleSheet* aSheet) BodyRule::~BodyRule() { + MOZ_COUNT_DTOR(BodyRule); } NS_IMPL_ISUPPORTS(BodyRule, kIStyleRuleIID); @@ -387,15 +395,19 @@ BodyRule::List(FILE* out, PRInt32 aIndent) const //---------------------------------------------------------------------- +MOZ_DECL_CTOR_COUNTER(BodyFixupRule); + BodyFixupRule::BodyFixupRule(nsHTMLBodyElement* aPart, nsIHTMLCSSStyleSheet* aSheet) : mPart(aPart), mSheet(aSheet) { + MOZ_COUNT_CTOR(BodyFixupRule); NS_INIT_REFCNT(); } BodyFixupRule::~BodyFixupRule() { + MOZ_COUNT_DTOR(BodyFixupRule); } NS_IMPL_ADDREF(BodyFixupRule); @@ -558,14 +570,18 @@ NS_NewHTMLBodyElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLBodyElement); + nsHTMLBodyElement::nsHTMLBodyElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLBodyElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLBodyElement::~nsHTMLBodyElement() { + MOZ_COUNT_DTOR(nsHTMLBodyElement); } NS_IMPL_ADDREF(nsHTMLBodyElement) @@ -808,3 +824,9 @@ nsHTMLBodyElement::GetMappedAttributeImpact(const nsIAtom* aAttribute, return NS_OK; } + +NS_IMETHODIMP +nsHTMLBodyElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp b/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp index f6c86973168..b8b987ac30e 100644 --- a/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp @@ -36,6 +36,7 @@ #include "nsIFormControlFrame.h" #include "nsIEventStateManager.h" #include "nsDOMEvent.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLButtonElementIID, NS_IDOMHTMLBUTTONELEMENT_IID); static NS_DEFINE_IID(kIFocusableContentIID, NS_IFOCUSABLECONTENT_IID); @@ -128,8 +129,11 @@ NS_NewHTMLButtonElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLButtonElement); + nsHTMLButtonElement::nsHTMLButtonElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLButtonElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -138,6 +142,7 @@ nsHTMLButtonElement::nsHTMLButtonElement(nsIAtom* aTag) nsHTMLButtonElement::~nsHTMLButtonElement() { + MOZ_COUNT_DTOR(nsHTMLButtonElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -525,3 +530,22 @@ nsHTMLButtonElement::SetForm(nsIDOMHTMLFormElement* aForm) return result; } + +NS_IMETHODIMP +nsHTMLButtonElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLDListElement.cpp b/mozilla/layout/html/content/src/nsHTMLDListElement.cpp index b20cea08824..4cbd8a5be91 100644 --- a/mozilla/layout/html/content/src/nsHTMLDListElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDListElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLDListElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDListElement); + nsHTMLDListElement::nsHTMLDListElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDListElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDListElement::~nsHTMLDListElement() { + MOZ_COUNT_DTOR(nsHTMLDListElement); } NS_IMPL_ADDREF(nsHTMLDListElement) @@ -196,3 +200,9 @@ nsHTMLDListElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDListElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLDelElement.cpp b/mozilla/layout/html/content/src/nsHTMLDelElement.cpp index ef42476958c..31e1a429f11 100644 --- a/mozilla/layout/html/content/src/nsHTMLDelElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDelElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLDelElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDelElement); + nsHTMLDelElement::nsHTMLDelElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDelElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDelElement::~nsHTMLDelElement() { + MOZ_COUNT_DTOR(nsHTMLDelElement); } NS_IMPL_ADDREF(nsHTMLDelElement) @@ -186,3 +190,9 @@ nsHTMLDelElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDelElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp b/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp index f9781706233..1a58196c452 100644 --- a/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp @@ -89,14 +89,18 @@ NS_NewHTMLDirectoryElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDirectoryElement); + nsHTMLDirectoryElement::nsHTMLDirectoryElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDirectoryElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDirectoryElement::~nsHTMLDirectoryElement() { + MOZ_COUNT_DTOR(nsHTMLDirectoryElement); } NS_IMPL_ADDREF(nsHTMLDirectoryElement) @@ -231,3 +235,9 @@ nsHTMLDirectoryElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDirectoryElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLDivElement.cpp b/mozilla/layout/html/content/src/nsHTMLDivElement.cpp index 9dc85c48812..a74a15264b5 100644 --- a/mozilla/layout/html/content/src/nsHTMLDivElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDivElement.cpp @@ -87,14 +87,18 @@ NS_NewHTMLDivElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLDivElement); + nsHTMLDivElement::nsHTMLDivElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLDivElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLDivElement::~nsHTMLDivElement() { + MOZ_COUNT_DTOR(nsHTMLDivElement); } NS_IMPL_ADDREF(nsHTMLDivElement) @@ -222,3 +226,9 @@ nsHTMLDivElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDivElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp b/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp index 61ddff94b82..f47edf362d1 100644 --- a/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp @@ -84,14 +84,18 @@ NS_NewHTMLEmbedElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLEmbedElement); + nsHTMLEmbedElement::nsHTMLEmbedElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLEmbedElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLEmbedElement::~nsHTMLEmbedElement() { + MOZ_COUNT_DTOR(nsHTMLEmbedElement); } NS_IMPL_ADDREF(nsHTMLEmbedElement) @@ -208,3 +212,9 @@ nsHTMLEmbedElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLEmbedElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp b/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp index 4e457fe4948..56c3e691954 100644 --- a/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp @@ -29,6 +29,7 @@ #include "nsIPresContext.h" #include "nsIForm.h" #include "nsIFormControl.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLFieldSetElementIID, NS_IDOMHTMLFIELDSETELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -98,8 +99,11 @@ NS_NewHTMLFieldSetElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFieldSetElement); + nsHTMLFieldSetElement::nsHTMLFieldSetElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFieldSetElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -107,6 +111,7 @@ nsHTMLFieldSetElement::nsHTMLFieldSetElement(nsIAtom* aTag) nsHTMLFieldSetElement::~nsHTMLFieldSetElement() { + MOZ_COUNT_DTOR(nsHTMLFieldSetElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -285,3 +290,22 @@ nsHTMLFieldSetElement::GetType(PRInt32* aType) } } + +NS_IMETHODIMP +nsHTMLFieldSetElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLFontElement.cpp b/mozilla/layout/html/content/src/nsHTMLFontElement.cpp index b2aef0a2727..3f0d4f2b7be 100644 --- a/mozilla/layout/html/content/src/nsHTMLFontElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFontElement.cpp @@ -92,14 +92,18 @@ NS_NewHTMLFontElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFontElement); + nsHTMLFontElement::nsHTMLFontElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFontElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLFontElement::~nsHTMLFontElement() { + MOZ_COUNT_DTOR(nsHTMLFontElement); } NS_IMPL_ADDREF(nsHTMLFontElement) @@ -367,3 +371,9 @@ nsHTMLFontElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFontElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLFormElement.cpp b/mozilla/layout/html/content/src/nsHTMLFormElement.cpp index 3b28d090010..f5775bd56fe 100644 --- a/mozilla/layout/html/content/src/nsHTMLFormElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFormElement.cpp @@ -36,6 +36,7 @@ #include "nsIDocument.h" #include "nsIPresShell.h" #include "nsIFrame.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); static NS_DEFINE_IID(kIFormControlIID, NS_IFORMCONTROL_IID); @@ -148,6 +149,10 @@ public: // should drop our (non ref-counted) reference to it void ReleaseForm(); +#ifdef DEBUG + nsresult SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; +#endif + void *mScriptObject; nsVoidArray mElements; }; @@ -169,8 +174,11 @@ NS_NewHTMLFormElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFormElement); + nsHTMLFormElement::nsHTMLFormElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFormElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mControls = new nsFormControlList(); @@ -180,6 +188,8 @@ nsHTMLFormElement::nsHTMLFormElement(nsIAtom* aTag) nsHTMLFormElement::~nsHTMLFormElement() { + MOZ_COUNT_DTOR(nsHTMLFormElement); + // set the controls to have no form PRUint32 numControls; GetElementCount(&numControls); @@ -622,16 +632,22 @@ nsHTMLFormElement::Item(PRUint32 aIndex, nsIDOMElement** aReturn) return NS_ERROR_FAILURE; } +//---------------------------------------------------------------------- + // nsFormControlList implementation, this could go away if there were a lightweight collection implementation somewhere +MOZ_DECL_CTOR_COUNTER(nsFormControlList); + nsFormControlList::nsFormControlList() { - mRefCnt = 0; + MOZ_COUNT_CTOR(nsFormControlList); + NS_INIT_REFCNT(); mScriptObject = nsnull; } nsFormControlList::~nsFormControlList() { + MOZ_COUNT_DTOR(nsFormControlList); Clear(); } @@ -748,3 +764,33 @@ nsFormControlList::NamedItem(const nsString& aName, nsIDOMNode** aReturn) return result; } +#ifdef DEBUG +nsresult +nsFormControlList::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; + PRUint32 asize; + mElements.SizeOf(aSizer, &asize); + *aResult = sizeof(*this) - sizeof(mElements) + asize; + return NS_OK; +} +#endif + +NS_IMETHODIMP +nsHTMLFormElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mControls) { + PRBool recorded; + aSizer->RecordObject((void*) mControls, &recorded); + if (!recorded) { + PRUint32 controlSize; + mControls->SizeOf(aSizer, &controlSize); + aSizer->AddSize(nsHTMLAtoms::form_control_list, controlSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp b/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp index f72b991612e..f6902a0b2c5 100644 --- a/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp @@ -98,14 +98,18 @@ NS_NewHTMLFrameElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFrameElement); + nsHTMLFrameElement::nsHTMLFrameElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFrameElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLFrameElement::~nsHTMLFrameElement() { + MOZ_COUNT_DTOR(nsHTMLFrameElement); } NS_IMPL_ADDREF(nsHTMLFrameElement) @@ -241,3 +245,9 @@ nsHTMLFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFrameElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp b/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp index 13e54b90510..36df2b80a42 100644 --- a/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLFrameSetElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLFrameSetElement); + nsHTMLFrameSetElement::nsHTMLFrameSetElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLFrameSetElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLFrameSetElement::~nsHTMLFrameSetElement() { + MOZ_COUNT_DTOR(nsHTMLFrameSetElement); } NS_IMPL_ADDREF(nsHTMLFrameSetElement) @@ -210,3 +214,9 @@ nsHTMLFrameSetElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFrameSetElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLHRElement.cpp b/mozilla/layout/html/content/src/nsHTMLHRElement.cpp index 95b1828219a..9636040ee4e 100644 --- a/mozilla/layout/html/content/src/nsHTMLHRElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHRElement.cpp @@ -91,14 +91,18 @@ NS_NewHTMLHRElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHRElement); + nsHTMLHRElement::nsHTMLHRElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLHRElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLHRElement::~nsHTMLHRElement() { + MOZ_COUNT_DTOR(nsHTMLHRElement); } NS_IMPL_ADDREF(nsHTMLHRElement) @@ -304,3 +308,9 @@ nsHTMLHRElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHRElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp b/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp index c7d9c5f170c..393d40b2168 100644 --- a/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp @@ -84,14 +84,18 @@ NS_NewHTMLHeadElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHeadElement); + nsHTMLHeadElement::nsHTMLHeadElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLHeadElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLHeadElement::~nsHTMLHeadElement() { + MOZ_COUNT_DTOR(nsHTMLHeadElement); } NS_IMPL_ADDREF(nsHTMLHeadElement) @@ -180,3 +184,9 @@ nsHTMLHeadElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp b/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp index d0ac28eab83..87bd394537c 100644 --- a/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLHeadingElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHeadingElement); + nsHTMLHeadingElement::nsHTMLHeadingElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLHeadingElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLHeadingElement::~nsHTMLHeadingElement() { + MOZ_COUNT_DTOR(nsHTMLHeadingElement); } NS_IMPL_ADDREF(nsHTMLHeadingElement) @@ -204,3 +208,9 @@ nsHTMLHeadingElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadingElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp b/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp index eaaa54d0da0..06e3fe8230f 100644 --- a/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp @@ -89,13 +89,17 @@ NS_NewHTMLHtmlElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLHtmlElement); + nsHTMLHtmlElement::nsHTMLHtmlElement() { + MOZ_COUNT_CTOR(nsHTMLHtmlElement); NS_INIT_REFCNT(); } nsHTMLHtmlElement::~nsHTMLHtmlElement() { + MOZ_COUNT_DTOR(nsHTMLHtmlElement); } NS_IMPL_ADDREF(nsHTMLHtmlElement) @@ -189,3 +193,9 @@ nsHTMLHtmlElement::HandleDOMEvent(nsIPresContext& aPresContext, return NS_OK; } + +NS_IMETHODIMP +nsHTMLHtmlElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp b/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp index 646aaa76c48..e27efd2dbc8 100644 --- a/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp @@ -110,14 +110,18 @@ NS_NewHTMLIFrameElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLIFrameElement); + nsHTMLIFrameElement::nsHTMLIFrameElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLIFrameElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLIFrameElement::~nsHTMLIFrameElement() { + MOZ_COUNT_DTOR(nsHTMLIFrameElement); } NS_IMPL_ADDREF(nsHTMLIFrameElement) @@ -304,3 +308,9 @@ nsHTMLIFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIFrameElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLImageElement.cpp b/mozilla/layout/html/content/src/nsHTMLImageElement.cpp index f8a86b8cd2c..155a2e83382 100644 --- a/mozilla/layout/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLImageElement.cpp @@ -147,8 +147,11 @@ NS_NewHTMLImageElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLImageElement); + nsHTMLImageElement::nsHTMLImageElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLImageElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mOwnerDocument = nsnull; @@ -156,6 +159,7 @@ nsHTMLImageElement::nsHTMLImageElement(nsIAtom* aTag) nsHTMLImageElement::~nsHTMLImageElement() { + MOZ_COUNT_DTOR(nsHTMLImageElement); NS_IF_RELEASE(mOwnerDocument); } @@ -576,3 +580,9 @@ nsHTMLImageElement::SetSrc(const nsString& aSrc) return result; } + +NS_IMETHODIMP +nsHTMLImageElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLInputElement.cpp b/mozilla/layout/html/content/src/nsHTMLInputElement.cpp index e224f238231..e31ef6286a0 100644 --- a/mozilla/layout/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLInputElement.cpp @@ -16,6 +16,7 @@ * Corporation. Portions created by Netscape are Copyright (C) 1998 * Netscape Communications Corporation. All Rights Reserved. */ +#include "nsCOMPtr.h" #include "nsIDOMHTMLInputElement.h" #include "nsIDOMHTMLFormElement.h" #include "nsIScriptObjectOwner.h" @@ -36,7 +37,7 @@ #include "nsIFrame.h" #include "nsIFocusableContent.h" #include "nsIEventStateManager.h" -#include "nsCOMPtr.h" +#include "nsISizeOfHandler.h" // XXX align=left, hspace, vspace, border? other nav4 attrs @@ -161,8 +162,11 @@ NS_NewHTMLInputElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLInputElement); + nsHTMLInputElement::nsHTMLInputElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLInputElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mType = NS_FORM_INPUT_TEXT; // default value @@ -173,6 +177,7 @@ nsHTMLInputElement::nsHTMLInputElement(nsIAtom* aTag) nsHTMLInputElement::~nsHTMLInputElement() { + MOZ_COUNT_DTOR(nsHTMLInputElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -844,3 +849,22 @@ nsHTMLInputElement::GetType(PRInt32* aType) } + +NS_IMETHODIMP +nsHTMLInputElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLInsElement.cpp b/mozilla/layout/html/content/src/nsHTMLInsElement.cpp index d5f969cab28..1484d136336 100644 --- a/mozilla/layout/html/content/src/nsHTMLInsElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLInsElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLInsElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLInsElement); + nsHTMLInsElement::nsHTMLInsElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLInsElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLInsElement::~nsHTMLInsElement() { + MOZ_COUNT_DTOR(nsHTMLInsElement); } NS_IMPL_ADDREF(nsHTMLInsElement) @@ -187,3 +191,9 @@ nsHTMLInsElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLInsElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp b/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp index b2c3fd2d3e6..1cf37104010 100644 --- a/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLIsIndexElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLIsIndexElement); + nsHTMLIsIndexElement::nsHTMLIsIndexElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLIsIndexElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLIsIndexElement::~nsHTMLIsIndexElement() { + MOZ_COUNT_DTOR(nsHTMLIsIndexElement); } NS_IMPL_ADDREF(nsHTMLIsIndexElement) @@ -193,3 +197,9 @@ nsHTMLIsIndexElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIsIndexElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLLIElement.cpp b/mozilla/layout/html/content/src/nsHTMLLIElement.cpp index b6257eeb7b8..a3f724de0cd 100644 --- a/mozilla/layout/html/content/src/nsHTMLLIElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLIElement.cpp @@ -87,14 +87,18 @@ NS_NewHTMLLIElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLIElement); + nsHTMLLIElement::nsHTMLLIElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLIElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLLIElement::~nsHTMLLIElement() { + MOZ_COUNT_DTOR(nsHTMLLIElement); } NS_IMPL_ADDREF(nsHTMLLIElement) @@ -229,3 +233,9 @@ nsHTMLLIElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLIElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp b/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp index a5d74a69d16..98246fe2ea4 100644 --- a/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp @@ -29,6 +29,7 @@ #include "nsIPresContext.h" #include "nsIFormControl.h" #include "nsIForm.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLLabelElementIID, NS_IDOMHTMLLABELELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -102,8 +103,11 @@ NS_NewHTMLLabelElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLabelElement); + nsHTMLLabelElement::nsHTMLLabelElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLabelElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -111,6 +115,7 @@ nsHTMLLabelElement::nsHTMLLabelElement(nsIAtom* aTag) nsHTMLLabelElement::~nsHTMLLabelElement() { + MOZ_COUNT_DTOR(nsHTMLLabelElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -297,3 +302,22 @@ nsHTMLLabelElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLabelElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp b/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp index f85ddb59088..73af4c39937 100644 --- a/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp @@ -349,3 +349,9 @@ nsHTMLLayerElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLayerElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp b/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp index e80d28a4b37..8e1553aa185 100644 --- a/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp @@ -28,6 +28,7 @@ #include "nsStyleConsts.h" #include "nsIPresContext.h" #include "nsIForm.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLLegendElementIID, NS_IDOMHTMLLEGENDELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -92,8 +93,11 @@ NS_NewHTMLLegendElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLegendElement); + nsHTMLLegendElement::nsHTMLLegendElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLegendElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -101,6 +105,7 @@ nsHTMLLegendElement::nsHTMLLegendElement(nsIAtom* aTag) nsHTMLLegendElement::~nsHTMLLegendElement() { + MOZ_COUNT_DTOR(nsHTMLLegendElement); if (mForm) { NS_RELEASE(mForm); } @@ -231,3 +236,22 @@ nsHTMLLegendElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLegendElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp b/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp index 387c31cae5b..98af84a8c1c 100644 --- a/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp @@ -111,8 +111,11 @@ NS_NewHTMLLinkElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLLinkElement); + nsHTMLLinkElement::nsHTMLLinkElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLLinkElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mStyleSheet = nsnull; @@ -120,6 +123,7 @@ nsHTMLLinkElement::nsHTMLLinkElement(nsIAtom* aTag) nsHTMLLinkElement::~nsHTMLLinkElement() { + MOZ_COUNT_DTOR(nsHTMLLinkElement); NS_IF_RELEASE(mStyleSheet); } @@ -282,3 +286,9 @@ nsHTMLLinkElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLinkElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLMapElement.cpp b/mozilla/layout/html/content/src/nsHTMLMapElement.cpp index 84d0896b93f..75b39aecc79 100644 --- a/mozilla/layout/html/content/src/nsHTMLMapElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLMapElement.cpp @@ -175,9 +175,7 @@ public: NS_IMETHOD GetRangeList(nsVoidArray*& aResult) const { return mInner.GetRangeList(aResult); } - NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { - return mInner.SizeOf(aSizer, aResult, sizeof(*this)); - } + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; // nsIHTMLContent NS_IMPL_IHTMLCONTENT_USING_GENERIC(mInner) @@ -201,8 +199,11 @@ NS_NewHTMLMapElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLMapElement); + nsHTMLMapElement::nsHTMLMapElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLMapElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mAreas = nsnull; @@ -210,6 +211,7 @@ nsHTMLMapElement::nsHTMLMapElement(nsIAtom* aTag) nsHTMLMapElement::~nsHTMLMapElement() { + MOZ_COUNT_DTOR(nsHTMLMapElement); if (nsnull != mAreas) { mAreas->ParentDestroyed(); NS_RELEASE(mAreas); @@ -358,3 +360,20 @@ nsHTMLMapElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMapElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mAreas) { + PRUint32 asize; + mAreas->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp b/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp index fd08afd9530..e85c6756108 100644 --- a/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp @@ -89,14 +89,18 @@ NS_NewHTMLMenuElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLMenuElement); + nsHTMLMenuElement::nsHTMLMenuElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLMenuElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLMenuElement::~nsHTMLMenuElement() { + MOZ_COUNT_DTOR(nsHTMLMenuElement); } NS_IMPL_ADDREF(nsHTMLMenuElement) @@ -223,3 +227,9 @@ nsHTMLMenuElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMenuElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp b/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp index 1750902551f..d0b7de36b28 100644 --- a/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp @@ -90,14 +90,19 @@ NS_NewHTMLMetaElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLMetaElement); + nsHTMLMetaElement::nsHTMLMetaElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLMetaElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLMetaElement::~nsHTMLMetaElement() { + + MOZ_COUNT_DTOR(nsHTMLMetaElement); } NS_IMPL_ADDREF(nsHTMLMetaElement) @@ -191,3 +196,9 @@ nsHTMLMetaElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMetaElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLModElement.cpp b/mozilla/layout/html/content/src/nsHTMLModElement.cpp index b65ecc61de1..6f85c6b66fb 100644 --- a/mozilla/layout/html/content/src/nsHTMLModElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLModElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLModElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLModElement); + nsHTMLModElement::nsHTMLModElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLModElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLModElement::~nsHTMLModElement() { + MOZ_COUNT_DTOR(nsHTMLModElement); } NS_IMPL_ADDREF(nsHTMLModElement) @@ -188,3 +192,9 @@ nsHTMLModElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLModElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLOListElement.cpp b/mozilla/layout/html/content/src/nsHTMLOListElement.cpp index 6312947eafd..19361a0b65a 100644 --- a/mozilla/layout/html/content/src/nsHTMLOListElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLOListElement.cpp @@ -89,14 +89,18 @@ NS_NewHTMLOListElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLOListElement); + nsHTMLOListElement::nsHTMLOListElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLOListElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLOListElement::~nsHTMLOListElement() { + MOZ_COUNT_DTOR(nsHTMLOListElement); } NS_IMPL_ADDREF(nsHTMLOListElement) @@ -265,3 +269,9 @@ nsHTMLOListElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOListElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp b/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp index c4a5191383d..b571490c1f3 100644 --- a/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp @@ -117,14 +117,18 @@ NS_NewHTMLObjectElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLObjectElement); + nsHTMLObjectElement::nsHTMLObjectElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLObjectElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLObjectElement::~nsHTMLObjectElement() { + MOZ_COUNT_DTOR(nsHTMLObjectElement); } NS_IMPL_ADDREF(nsHTMLObjectElement) @@ -265,3 +269,9 @@ nsHTMLObjectElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLObjectElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp b/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp index c6f1be09d3d..d35b0d30272 100644 --- a/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp @@ -86,14 +86,18 @@ NS_NewHTMLOptGroupElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLOptGroupElement); + nsHTMLOptGroupElement::nsHTMLOptGroupElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLOptGroupElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLOptGroupElement::~nsHTMLOptGroupElement() { + MOZ_COUNT_DTOR(nsHTMLOptGroupElement); } NS_IMPL_ADDREF(nsHTMLOptGroupElement) @@ -186,3 +190,9 @@ nsHTMLOptGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOptGroupElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp b/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp index 71127a199bf..8e4df3b698f 100644 --- a/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp @@ -136,14 +136,18 @@ NS_NewHTMLOptionElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLOptionElement); + nsHTMLOptionElement::nsHTMLOptionElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLOptionElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLOptionElement::~nsHTMLOptionElement() { + MOZ_COUNT_DTOR(nsHTMLOptionElement); } // ISupports @@ -612,3 +616,9 @@ nsHTMLOptionElement::Initialize(JSContext* aContext, return result; } + +NS_IMETHODIMP +nsHTMLOptionElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp b/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp index 0427fd5974f..f344f8e0c2e 100644 --- a/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp @@ -91,13 +91,17 @@ NS_NewHTMLParagraphElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLParagraphElement); + nsHTMLParagraphElement::nsHTMLParagraphElement() { + MOZ_COUNT_CTOR(nsHTMLParagraphElement); NS_INIT_REFCNT(); } nsHTMLParagraphElement::~nsHTMLParagraphElement() { + MOZ_COUNT_DTOR(nsHTMLParagraphElement); } NS_IMPL_ADDREF(nsHTMLParagraphElement) @@ -213,3 +217,9 @@ nsHTMLParagraphElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParagraphElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLParamElement.cpp b/mozilla/layout/html/content/src/nsHTMLParamElement.cpp index 744e3f39afa..79332d8b75d 100644 --- a/mozilla/layout/html/content/src/nsHTMLParamElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLParamElement.cpp @@ -90,14 +90,18 @@ NS_NewHTMLParamElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLParamElement); + nsHTMLParamElement::nsHTMLParamElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLParamElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLParamElement::~nsHTMLParamElement() { + MOZ_COUNT_DTOR(nsHTMLParamElement); } NS_IMPL_ADDREF(nsHTMLParamElement) @@ -193,3 +197,9 @@ nsHTMLParamElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParamElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLPreElement.cpp b/mozilla/layout/html/content/src/nsHTMLPreElement.cpp index 8ace87c074e..399bb417666 100644 --- a/mozilla/layout/html/content/src/nsHTMLPreElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLPreElement.cpp @@ -87,14 +87,18 @@ NS_NewHTMLPreElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLPreElement); + nsHTMLPreElement::nsHTMLPreElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLPreElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLPreElement::~nsHTMLPreElement() { + MOZ_COUNT_DTOR(nsHTMLPreElement); } NS_IMPL_ADDREF(nsHTMLPreElement) @@ -274,3 +278,9 @@ nsHTMLPreElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLPreElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp b/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp index 6e160223aca..494193519ef 100644 --- a/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp @@ -84,14 +84,18 @@ NS_NewHTMLQuoteElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLQuoteElement); + nsHTMLQuoteElement::nsHTMLQuoteElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLQuoteElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLQuoteElement::~nsHTMLQuoteElement() { + MOZ_COUNT_DTOR(nsHTMLQuoteElement); } NS_IMPL_ADDREF(nsHTMLQuoteElement) @@ -183,3 +187,9 @@ nsHTMLQuoteElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLQuoteElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp b/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp index 5b52f373cfc..8422e697705 100644 --- a/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp @@ -97,14 +97,18 @@ NS_NewHTMLScriptElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLScriptElement); + nsHTMLScriptElement::nsHTMLScriptElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLScriptElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLScriptElement::~nsHTMLScriptElement() { + MOZ_COUNT_DTOR(nsHTMLScriptElement); } NS_IMPL_ADDREF(nsHTMLScriptElement) @@ -244,3 +248,18 @@ nsHTMLScriptElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLScriptElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mText.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mText) + ssize; + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp b/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp index 036fb478d1d..1742e073adf 100644 --- a/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp @@ -16,6 +16,7 @@ * Corporation. Portions created by Netscape are Copyright (C) 1998 * Netscape Communications Corporation. All Rights Reserved. */ +#include "nsCOMPtr.h" #include "nsIDOMHTMLSelectElement.h" #include "nsIDOMNSHTMLSelectElement.h" #include "nsIDOMHTMLFormElement.h" @@ -39,7 +40,7 @@ #include "nsIJSScriptObject.h" #include "nsISelectElement.h" #include "nsISelectControlFrame.h" -#include "nsCOMPtr.h" +#include "nsISizeOfHandler.h" // Notify/query select frame for selectedIndex #include "nsIDocument.h" @@ -202,8 +203,11 @@ NS_NewHTMLSelectElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLSelectElement); + nsHTMLSelectElement::nsHTMLSelectElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLSelectElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mOptions = nsnull; @@ -212,6 +216,7 @@ nsHTMLSelectElement::nsHTMLSelectElement(nsIAtom* aTag) nsHTMLSelectElement::~nsHTMLSelectElement() { + MOZ_COUNT_DTOR(nsHTMLSelectElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -837,6 +842,8 @@ nsHTMLSelectElement::Init() return NS_OK; } +//---------------------------------------------------------------------- + // nsOptionList implementation // XXX this was modified form nsHTMLFormElement.cpp. We need a base class implementation @@ -869,8 +876,11 @@ nsOptionList::GetOptions() mDirty = PR_FALSE; } +MOZ_DECL_CTOR_COUNTER(nsOptionList); + nsOptionList::nsOptionList(nsHTMLSelectElement* aSelect) { + MOZ_COUNT_CTOR(nsOptionList); mDirty = PR_TRUE; // Do not maintain a reference counted reference. When // the select goes away, it will let us know. @@ -879,6 +889,7 @@ nsOptionList::nsOptionList(nsHTMLSelectElement* aSelect) nsOptionList::~nsOptionList() { + MOZ_COUNT_DTOR(nsOptionList); DropReference(); } @@ -1131,3 +1142,22 @@ nsOptionList::Clear() mElements.Clear(); } + +NS_IMETHODIMP +nsHTMLSelectElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp b/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp index 83a3ade8301..b8167b633c7 100644 --- a/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp @@ -83,14 +83,18 @@ NS_NewHTMLSpacerElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLSpacerElement); + nsHTMLSpacerElement::nsHTMLSpacerElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLSpacerElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLSpacerElement::~nsHTMLSpacerElement() { + MOZ_COUNT_DTOR(nsHTMLSpacerElement); } NS_IMPL_ADDREF(nsHTMLSpacerElement) @@ -242,3 +246,9 @@ nsHTMLSpacerElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpacerElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp b/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp index aca2a1ae854..383b412ac0e 100644 --- a/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp @@ -78,14 +78,18 @@ NS_NewHTMLSpanElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLSpanElement); + nsHTMLSpanElement::nsHTMLSpanElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLSpanElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLSpanElement::~nsHTMLSpanElement() { + MOZ_COUNT_DTOR(nsHTMLSpanElement); } NS_IMPL_ADDREF(nsHTMLSpanElement) @@ -169,3 +173,9 @@ nsHTMLSpanElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpanElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp b/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp index 5e2d572e0cf..13891d1e068 100644 --- a/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp @@ -101,8 +101,11 @@ NS_NewHTMLStyleElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLStyleElement); + nsHTMLStyleElement::nsHTMLStyleElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLStyleElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mStyleSheet = nsnull; @@ -110,6 +113,7 @@ nsHTMLStyleElement::nsHTMLStyleElement(nsIAtom* aTag) nsHTMLStyleElement::~nsHTMLStyleElement() { + MOZ_COUNT_DTOR(nsHTMLStyleElement); NS_IF_RELEASE(mStyleSheet); } @@ -266,3 +270,9 @@ nsHTMLStyleElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLStyleElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp index 8b2c0f2dc8d..4e6dbd8d836 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp @@ -85,14 +85,18 @@ NS_NewHTMLTableCaptionElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableCaptionElement); + nsHTMLTableCaptionElement::nsHTMLTableCaptionElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableCaptionElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTableCaptionElement::~nsHTMLTableCaptionElement() { + MOZ_COUNT_DTOR(nsHTMLTableCaptionElement); } NS_IMPL_ADDREF(nsHTMLTableCaptionElement) @@ -215,3 +219,9 @@ nsHTMLTableCaptionElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCaptionElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp index 725593c08f4..293740511bb 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp @@ -131,8 +131,11 @@ NS_NewHTMLTableCellElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableCellElement); + nsHTMLTableCellElement::nsHTMLTableCellElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableCellElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mColIndex=0; @@ -140,6 +143,7 @@ nsHTMLTableCellElement::nsHTMLTableCellElement(nsIAtom* aTag) nsHTMLTableCellElement::~nsHTMLTableCellElement() { + MOZ_COUNT_DTOR(nsHTMLTableCellElement); } NS_IMPL_ADDREF(nsHTMLTableCellElement) @@ -547,3 +551,9 @@ nsHTMLTableCellElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCellElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp index a0d4ad97121..b03576bb77b 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp @@ -101,14 +101,18 @@ NS_NewHTMLTableColElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableColElement); + nsHTMLTableColElement::nsHTMLTableColElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableColElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTableColElement::~nsHTMLTableColElement() { + MOZ_COUNT_DTOR(nsHTMLTableColElement); } NS_IMPL_ADDREF(nsHTMLTableColElement) @@ -339,3 +343,9 @@ NS_METHOD nsHTMLTableColElement::GetSpanValue(PRInt32* aSpan) return NS_OK; } + +NS_IMETHODIMP +nsHTMLTableColElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp index 1c1eeaa9a19..33e79c513fe 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp @@ -95,14 +95,18 @@ NS_NewHTMLTableColGroupElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTa return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableColGroupElement); + nsHTMLTableColGroupElement::nsHTMLTableColGroupElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableColGroupElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTableColGroupElement::~nsHTMLTableColGroupElement() { + MOZ_COUNT_DTOR(nsHTMLTableColGroupElement); } NS_IMPL_ADDREF(nsHTMLTableColGroupElement) @@ -306,3 +310,9 @@ nsHTMLTableColGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableColGroupElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableElement.cpp index 76acd0e6645..8be2b0596e3 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableElement.cpp @@ -139,18 +139,28 @@ public: NS_IMETHOD ParentDestroyed(); +#ifdef DEBUG + void SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + *aResult = sizeof(*this); + } +#endif + protected: nsHTMLTableElement * mParent; }; +MOZ_DECL_CTOR_COUNTER(TableRowsCollection); + TableRowsCollection::TableRowsCollection(nsHTMLTableElement *aParent) : nsGenericDOMHTMLCollection() { + MOZ_COUNT_CTOR(TableRowsCollection); mParent = aParent; } TableRowsCollection::~TableRowsCollection() { + MOZ_COUNT_DTOR(TableRowsCollection); // we do NOT have a ref-counted reference to mParent, so do NOT release it! // this is to avoid circular references. The instantiator who provided mParent // is responsible for managing our reference for us. @@ -325,8 +335,11 @@ NS_NewHTMLTableElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableElement); + nsHTMLTableElement::nsHTMLTableElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mTBodies=nsnull; @@ -335,6 +348,7 @@ nsHTMLTableElement::nsHTMLTableElement(nsIAtom* aTag) nsHTMLTableElement::~nsHTMLTableElement() { + MOZ_COUNT_DTOR(nsHTMLTableElement); if (nsnull!=mTBodies) { mTBodies->ParentDestroyed(); @@ -1287,3 +1301,25 @@ nsHTMLTableElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mTBodies) { + PRUint32 asize; + mTBodies->SizeOf(aSizer, &asize); + sum += asize; + } + if (mRows) { + PRUint32 asize; + mRows->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp index bfc1a3a8108..66136442d2f 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp @@ -54,14 +54,24 @@ public: nsTableCellCollection(nsIContent* aParent, nsIAtom* aTag); + ~nsTableCellCollection(); + NS_IMETHOD GetLength(PRUint32* aLength); NS_IMETHOD Item(PRUint32 aIndex, nsIDOMNode** aReturn); }; +MOZ_DECL_CTOR_COUNTER(nsTableCellCollection); + nsTableCellCollection::nsTableCellCollection(nsIContent* aParent, nsIAtom* aTag) : GenericElementCollection(aParent, aTag) { + MOZ_COUNT_CTOR(nsTableCellCollection); +} + +nsTableCellCollection::~nsTableCellCollection() +{ + MOZ_COUNT_DTOR(nsTableCellCollection); } NS_IMETHODIMP @@ -124,6 +134,8 @@ nsTableCellCollection::Item(PRUint32 aIndex, return rv; } +//---------------------------------------------------------------------- + class nsHTMLTableRowElement : public nsIDOMHTMLTableRowElement, public nsIScriptObjectOwner, public nsIDOMEventReceiver, @@ -227,8 +239,11 @@ NS_NewHTMLTableRowElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableRowElement); + nsHTMLTableRowElement::nsHTMLTableRowElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableRowElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mCells = nsnull; @@ -236,6 +251,7 @@ nsHTMLTableRowElement::nsHTMLTableRowElement(nsIAtom* aTag) nsHTMLTableRowElement::~nsHTMLTableRowElement() { + MOZ_COUNT_DTOR(nsHTMLTableRowElement); if (nsnull != mCells) { mCells->ParentDestroyed(); NS_RELEASE(mCells); @@ -726,3 +742,20 @@ nsHTMLTableRowElement::HandleDOMEvent(nsIPresContext& aPresContext, + +NS_IMETHODIMP +nsHTMLTableRowElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mCells) { + PRUint32 asize; + mCells->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp index 8eeb17117b5..c08391cd6e3 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp @@ -36,9 +36,9 @@ static NS_DEFINE_IID(kIDOMHTMLCollectionIID, NS_IDOMHTMLCOLLECTION_IID); // you will see the phrases "rowgroup" and "section" used interchangably class nsHTMLTableSectionElement : public nsIDOMHTMLTableSectionElement, - public nsIScriptObjectOwner, - public nsIDOMEventReceiver, - public nsIHTMLContent + public nsIScriptObjectOwner, + public nsIDOMEventReceiver, + public nsIHTMLContent { public: nsHTMLTableSectionElement(nsIAtom* aTag); @@ -100,8 +100,11 @@ NS_NewHTMLTableSectionElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTableSectionElement); + nsHTMLTableSectionElement::nsHTMLTableSectionElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTableSectionElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mRows = nsnull; @@ -109,6 +112,7 @@ nsHTMLTableSectionElement::nsHTMLTableSectionElement(nsIAtom* aTag) nsHTMLTableSectionElement::~nsHTMLTableSectionElement() { + MOZ_COUNT_DTOR(nsHTMLTableSectionElement); if (nsnull!=mRows) { mRows->ParentDestroyed(); NS_RELEASE(mRows); @@ -368,3 +372,20 @@ nsHTMLTableSectionElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableSectionElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum = 0; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + if (mRows) { + PRUint32 asize; + mRows->SizeOf(aSizer, &asize); + sum += asize; + } + *aResult = sum; +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp b/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp index 22ad55876fa..4652ff46755 100644 --- a/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp @@ -33,6 +33,7 @@ #include "nsIFormControlFrame.h" #include "nsIFocusableContent.h" #include "nsIEventStateManager.h" +#include "nsISizeOfHandler.h" static NS_DEFINE_IID(kIDOMHTMLTextAreaElementIID, NS_IDOMHTMLTEXTAREAELEMENT_IID); static NS_DEFINE_IID(kIDOMHTMLFormElementIID, NS_IDOMHTMLFORMELEMENT_IID); @@ -128,8 +129,11 @@ NS_NewHTMLTextAreaElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTextAreaElement); + nsHTMLTextAreaElement::nsHTMLTextAreaElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTextAreaElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); mForm = nsnull; @@ -137,6 +141,7 @@ nsHTMLTextAreaElement::nsHTMLTextAreaElement(nsIAtom* aTag) nsHTMLTextAreaElement::~nsHTMLTextAreaElement() { + MOZ_COUNT_DTOR(nsHTMLTextAreaElement); if (nsnull != mForm) { // prevent mForm from decrementing its ref count on us mForm->RemoveElement(this, PR_FALSE); @@ -492,3 +497,22 @@ nsHTMLTextAreaElement::SetForm(nsIDOMHTMLFormElement* aForm) } return result; } + +NS_IMETHODIMP +nsHTMLTextAreaElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + mInner.SizeOf(aSizer, aResult, sizeof(*this)); + if (mForm) { + PRBool recorded; + aSizer->RecordObject(mForm, &recorded); + if (!recorded) { + PRUint32 formSize; + mForm->SizeOf(aSizer, &formSize); + aSizer->AddSize(nsHTMLAtoms::iform, formSize); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp b/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp index 6a9489dd4aa..ffa9e942a0e 100644 --- a/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp @@ -90,14 +90,18 @@ NS_NewHTMLTitleElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLTitleElement); + nsHTMLTitleElement::nsHTMLTitleElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLTitleElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLTitleElement::~nsHTMLTitleElement() { + MOZ_COUNT_DTOR(nsHTMLTitleElement); } NS_IMPL_ADDREF(nsHTMLTitleElement) @@ -238,3 +242,9 @@ nsHTMLTitleElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTitleElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLUListElement.cpp b/mozilla/layout/html/content/src/nsHTMLUListElement.cpp index b73f7652f2b..af1eb7af607 100644 --- a/mozilla/layout/html/content/src/nsHTMLUListElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLUListElement.cpp @@ -90,14 +90,18 @@ NS_NewHTMLUListElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLUListElement); + nsHTMLUListElement::nsHTMLUListElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLUListElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLUListElement::~nsHTMLUListElement() { + MOZ_COUNT_DTOR(nsHTMLUListElement); } NS_IMPL_ADDREF(nsHTMLUListElement) @@ -243,3 +247,9 @@ nsHTMLUListElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLUListElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp b/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp index 743c51155c9..61cff1dc44f 100644 --- a/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp @@ -82,14 +82,18 @@ NS_NewHTMLWBRElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag) return it->QueryInterface(kIHTMLContentIID, (void**) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsHTMLWBRElement); + nsHTMLWBRElement::nsHTMLWBRElement(nsIAtom* aTag) { + MOZ_COUNT_CTOR(nsHTMLWBRElement); NS_INIT_REFCNT(); mInner.Init(this, aTag); } nsHTMLWBRElement::~nsHTMLWBRElement() { + MOZ_COUNT_DTOR(nsHTMLWBRElement); } NS_IMPL_ADDREF(nsHTMLWBRElement) @@ -179,3 +183,9 @@ nsHTMLWBRElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLWBRElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); +} diff --git a/mozilla/layout/xml/content/src/nsXMLCDATASection.cpp b/mozilla/layout/xml/content/src/nsXMLCDATASection.cpp index 1dddcd61bf0..e8b6c922ba2 100644 --- a/mozilla/layout/xml/content/src/nsXMLCDATASection.cpp +++ b/mozilla/layout/xml/content/src/nsXMLCDATASection.cpp @@ -64,6 +64,10 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + return mInner.SizeOf(aSizer, aResult, sizeof(*this)); + } + // nsITextContent NS_IMPL_ITEXTCONTENT_USING_GENERIC_DOM_DATA(mInner) @@ -86,8 +90,11 @@ NS_NewXMLCDATASection(nsIContent** aInstancePtrResult) return it->QueryInterface(kIContentIID, (void **) aInstancePtrResult); } +MOZ_DECL_CTOR_COUNTER(nsXMLCDATASection); + nsXMLCDATASection::nsXMLCDATASection() { + MOZ_COUNT_CTOR(nsXMLCDATASection); NS_INIT_REFCNT(); mInner.Init(this); mContentID = 0; @@ -95,6 +102,7 @@ nsXMLCDATASection::nsXMLCDATASection() nsXMLCDATASection::~nsXMLCDATASection() { + MOZ_COUNT_DTOR(nsXMLCDATASection); } NS_IMPL_ADDREF(nsXMLCDATASection) diff --git a/mozilla/layout/xml/content/src/nsXMLDocumentType.cpp b/mozilla/layout/xml/content/src/nsXMLDocumentType.cpp index 81504164fd6..84a116aad7b 100644 --- a/mozilla/layout/xml/content/src/nsXMLDocumentType.cpp +++ b/mozilla/layout/xml/content/src/nsXMLDocumentType.cpp @@ -28,6 +28,8 @@ #include "nsLayoutAtoms.h" #include "nsString.h" #include "nsIXMLContent.h" +#include "nsISizeOfHandler.h" +#include "nsDOMAttributeMap.h" static NS_DEFINE_IID(kIDOMDocumentTypeIID, NS_IDOMDOCUMENTTYPE_IID); @@ -63,6 +65,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -308,3 +312,35 @@ nsXMLDocumentType::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + +NS_IMETHODIMP +nsXMLDocumentType::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mName) + ssize; + if (mEntities) { + PRBool recorded; + aSizer->RecordObject((void*) mEntities, &recorded); + if (!recorded) { + PRUint32 size; + nsDOMAttributeMap::SizeOfNamedNodeMap(mEntities, aSizer, &size); + aSizer->AddSize(nsLayoutAtoms::xml_document_entities, size); + } + } + if (mNotations) { + PRBool recorded; + aSizer->RecordObject((void*) mNotations, &recorded); + if (!recorded) { + PRUint32 size; + nsDOMAttributeMap::SizeOfNamedNodeMap(mNotations, aSizer, &size); + aSizer->AddSize(nsLayoutAtoms::xml_document_notations, size); + } + } +#endif + return NS_OK; +} diff --git a/mozilla/layout/xml/content/src/nsXMLEntity.cpp b/mozilla/layout/xml/content/src/nsXMLEntity.cpp index be071e07cec..d2bbba97e87 100644 --- a/mozilla/layout/xml/content/src/nsXMLEntity.cpp +++ b/mozilla/layout/xml/content/src/nsXMLEntity.cpp @@ -62,6 +62,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -312,3 +314,23 @@ nsXMLEntity::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + +NS_IMETHODIMP +nsXMLEntity::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mName) + ssize; + mPublicId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mPublicId) + ssize; + mSystemId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mSystemId) + ssize; + mNotationName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mNotationName) + ssize; +#endif + return NS_OK; +} diff --git a/mozilla/layout/xml/content/src/nsXMLNotation.cpp b/mozilla/layout/xml/content/src/nsXMLNotation.cpp index a11e6a1d1e0..05900e6320a 100644 --- a/mozilla/layout/xml/content/src/nsXMLNotation.cpp +++ b/mozilla/layout/xml/content/src/nsXMLNotation.cpp @@ -62,6 +62,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -295,3 +297,21 @@ nsXMLNotation::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + +NS_IMETHODIMP +nsXMLNotation::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mName.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mName) + ssize; + mPublicId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mPublicId) + ssize; + mSystemId.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mSystemId) + ssize; +#endif + return NS_OK; +} diff --git a/mozilla/layout/xml/content/src/nsXMLProcessingInstruction.cpp b/mozilla/layout/xml/content/src/nsXMLProcessingInstruction.cpp index e72b7bc5c10..2614595244d 100644 --- a/mozilla/layout/xml/content/src/nsXMLProcessingInstruction.cpp +++ b/mozilla/layout/xml/content/src/nsXMLProcessingInstruction.cpp @@ -61,6 +61,8 @@ public: // nsIContent NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) + NS_IMETHOD SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const; + protected: // XXX Processing instructions are currently implemented by using // the generic CharacterData inner object, even though PIs are not @@ -285,3 +287,19 @@ nsXMLProcessingInstruction::SetContentID(PRUint32 aID) { return NS_ERROR_NOT_IMPLEMENTED; } + + +NS_IMETHODIMP +nsXMLProcessingInstruction::SizeOf(nsISizeOfHandler* aSizer, + PRUint32* aResult) const +{ + if (!aResult) return NS_ERROR_NULL_POINTER; +#ifdef DEBUG + PRUint32 sum; + mInner.SizeOf(aSizer, &sum, sizeof(*this)); + PRUint32 ssize; + mTarget.SizeOf(aSizer, &ssize); + sum = sum - sizeof(mTarget) + ssize; +#endif + return NS_OK; +} diff --git a/mozilla/layout/xul/base/src/nsScrollbarFrame.cpp b/mozilla/layout/xul/base/src/nsScrollbarFrame.cpp index 3241b294579..264e0f72494 100644 --- a/mozilla/layout/xul/base/src/nsScrollbarFrame.cpp +++ b/mozilla/layout/xul/base/src/nsScrollbarFrame.cpp @@ -72,10 +72,16 @@ public: NS_IMPL_ICONTENT_USING_GENERIC(mInner) + // NS_IMPL_ICONTENT_USING_GENERIC_DOM_DATA(mInner) }; +NS_IMETHODIMP +AnonymousElement::SizeOf(nsISizeOfHandler* aSizer, PRUint32* aResult) const { + return this->nsXMLElement::SizeOf(aSizer, aResult); +} + /* NS_IMETHODIMP AnonymousElement::GetTag(nsIAtom*& aResult) const