author | Catalin Iacob <iacobcatalin@gmail.com> |
Sun, 23 Jun 2013 14:03:39 +0200 | |
changeset 136364 | 727736b233b39f7aab2aa93279370ad1b5f2d629 |
parent 136363 | 3d4480f6c25d2ba46dc90912804bdfd29f6bd52e |
child 136365 | dc7d6a09e42ad115839761b08c82b47fe5d20b20 |
push id | 24882 |
push user | ryanvm@gmail.com |
push date | Tue, 25 Jun 2013 21:02:44 +0000 |
treeherder | mozilla-central@cc80aa0c7c13 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | njn |
bugs | 798914 |
milestone | 25.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/caps/src/nsNullPrincipalURI.cpp +++ b/caps/src/nsNullPrincipalURI.cpp @@ -1,14 +1,15 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=2 sts=2 expandtab * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "nsNullPrincipalURI.h" #include "nsNetUtil.h" #include "nsEscape.h" #include "nsCRT.h" //////////////////////////////////////////////////////////////////////////////// //// nsNullPrincipalURI @@ -267,19 +268,19 @@ nsNullPrincipalURI::SchemeIs(const char *_schemeIs = (0 == nsCRT::strcasecmp(mScheme.get(), aScheme)); return NS_OK; } //////////////////////////////////////////////////////////////////////////////// //// nsISizeOf size_t -nsNullPrincipalURI::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsNullPrincipalURI::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return mScheme.SizeOfExcludingThisIfUnshared(aMallocSizeOf) + mPath.SizeOfExcludingThisIfUnshared(aMallocSizeOf); } size_t -nsNullPrincipalURI::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { +nsNullPrincipalURI::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); }
--- a/caps/src/nsNullPrincipalURI.h +++ b/caps/src/nsNullPrincipalURI.h @@ -11,32 +11,33 @@ #ifndef __nsNullPrincipalURI_h__ #define __nsNullPrincipalURI_h__ #include "nsIURI.h" #include "nsISizeOf.h" #include "nsAutoPtr.h" #include "nsString.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" // {51fcd543-3b52-41f7-b91b-6b54102236e6} #define NS_NULLPRINCIPALURI_IMPLEMENTATION_CID \ {0x51fcd543, 0x3b52, 0x41f7, \ {0xb9, 0x1b, 0x6b, 0x54, 0x10, 0x22, 0x36, 0xe6} } class nsNullPrincipalURI MOZ_FINAL : public nsIURI , public nsISizeOf { public: NS_DECL_ISUPPORTS NS_DECL_NSIURI // nsISizeOf - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsNullPrincipalURI(const nsCString &aSpec); private: nsCString mScheme; nsCString mPath; };
--- a/content/base/public/FragmentOrElement.h +++ b/content/base/public/FragmentOrElement.h @@ -8,16 +8,17 @@ * provides an implementation of nsIDOMNode, implements nsIContent, provides * utility methods for subclasses, and so forth. */ #ifndef FragmentOrElement_h___ #define FragmentOrElement_h___ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsAttrAndChildArray.h" // member #include "nsCycleCollectionParticipant.h" // NS_DECL_CYCLE_* #include "nsIContent.h" // base class #include "nsIDOMTouchEvent.h" // base class (nsITouchEventReceiver) #include "nsIDOMXPathNSResolver.h" // base class #include "nsIInlineEventHandlers.h" // base class #include "nsINodeList.h" // base class #include "nsIWeakReference.h" // base class @@ -293,17 +294,17 @@ public: { public: nsDOMSlots(); virtual ~nsDOMSlots(); void Traverse(nsCycleCollectionTraversalCallback &cb, bool aIsXUL); void Unlink(bool aIsXUL); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; /** * The .style attribute (an interface that forwards to the actual * style rules) * @see nsGenericHTMLElement::GetStyle */ nsCOMPtr<nsICSSDeclaration> mStyle;
--- a/content/base/public/nsINode.h +++ b/content/base/public/nsINode.h @@ -12,16 +12,17 @@ #include "nsIDOMNode.h" #include "nsIDOMNodeSelector.h" // base class #include "nsINodeInfo.h" // member (in nsCOMPtr) #include "nsIVariant.h" // for use in GetUserData() #include "nsNodeInfoManager.h" // for use in NodePrincipal() #include "nsPropertyTable.h" // for typedefs #include "nsTObserverArray.h" // for member #include "nsWindowMemoryReporter.h" // for NS_DECL_SIZEOF_EXCLUDING_THIS +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/EventTarget.h" // for base class // Including 'windows.h' will #define GetClassInfo to something else. #ifdef XP_WIN #ifdef GetClassInfo #undef GetClassInfo #endif #endif @@ -294,17 +295,17 @@ public: // NS_DECL_SIZEOF_EXCLUDING_THIS // SizeOfIncludingThis doesn't need to be overridden by sub-classes because // sub-classes of nsINode are guaranteed to be laid out in memory in such a // way that |this| points to the start of the allocated object, even in // methods of nsINode's sub-classes, and so |aMallocSizeOf(this)| is always // safe to call no matter which object it was invoked on. - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } friend class nsNodeUtils; friend class nsNodeWeakReference; friend class nsNodeSupportsWeakRefTearoff; friend class nsAttrAndChildArray;
--- a/content/base/src/FragmentOrElement.cpp +++ b/content/base/src/FragmentOrElement.cpp @@ -5,16 +5,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * Base class for all element classes; this provides an implementation * of DOM Core's nsIDOMElement, implements nsIContent, provides * utility methods for subclasses, and so forth. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "mozilla/Likely.h" #include "mozilla/dom/FragmentOrElement.h" #include "mozilla/dom/Attr.h" #include "nsDOMAttributeMap.h" #include "nsIAtom.h" @@ -588,17 +589,17 @@ FragmentOrElement::nsDOMSlots::Unlink(bo mUndoManager = nullptr; if (mClassList) { mClassList->DropReference(); mClassList = nullptr; } } size_t -FragmentOrElement::nsDOMSlots::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +FragmentOrElement::nsDOMSlots::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); if (mAttributeMap) { n += mAttributeMap->SizeOfIncludingThis(aMallocSizeOf); } // Measurement of the following members may be added later if DMD finds it is @@ -1829,17 +1830,17 @@ FragmentOrElement::FireNodeRemovedForChi for (child = GetFirstChild(); child && child->GetParentNode() == this; child = child->GetNextSibling()) { nsContentUtils::MaybeFireNodeRemoved(child, this, doc); } } size_t -FragmentOrElement::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +FragmentOrElement::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; n += nsIContent::SizeOfExcludingThis(aMallocSizeOf); n += mAttrsAndChildren.SizeOfExcludingThis(aMallocSizeOf); nsDOMSlots* slots = GetExistingDOMSlots(); if (slots) { n += slots->SizeOfIncludingThis(aMallocSizeOf);
--- a/content/base/src/Link.cpp +++ b/content/base/src/Link.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=2 et : * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "Link.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nsEventStates.h" #include "nsIURL.h" #include "nsISizeOf.h" #include "nsEscape.h" #include "nsGkAtoms.h" #include "nsString.h" @@ -495,17 +496,17 @@ Link::SetHrefAttribute(nsIURI *aURI) nsAutoCString href; (void)aURI->GetSpec(href); (void)mElement->SetAttr(kNameSpaceID_None, nsGkAtoms::href, NS_ConvertUTF8toUTF16(href), true); } size_t -Link::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +Link::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; if (mCachedURI) { nsCOMPtr<nsISizeOf> iface = do_QueryInterface(mCachedURI); if (iface) { n += iface->SizeOfIncludingThis(aMallocSizeOf); }
--- a/content/base/src/Link.h +++ b/content/base/src/Link.h @@ -7,16 +7,17 @@ /** * This is the base class for all link classes. */ #ifndef mozilla_dom_Link_h__ #define mozilla_dom_Link_h__ #include "mozilla/IHistory.h" +#include "mozilla/MemoryReporting.h" #include "nsIContent.h" namespace mozilla { namespace dom { class Element; #define MOZILLA_DOM_LINK_IMPLEMENTATION_IID \ @@ -93,17 +94,17 @@ public: * Checks if DNS Prefetching is ok * * @returns boolean * Defaults to true; should be overridden for specialised cases */ virtual bool HasDeferredDNSPrefetchRequest() { return true; } virtual size_t - SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; bool ElementHasHref() const; protected: virtual ~Link(); /** * Return true if the link has associated URI.
--- a/content/base/src/nsAttrAndChildArray.cpp +++ b/content/base/src/nsAttrAndChildArray.cpp @@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * Storage of the children and attributes of a DOM node; storage for * the two is unified to minimize footprint. */ +#include "mozilla/MemoryReporting.h" #include "nsAttrAndChildArray.h" #include "nsMappedAttributeElement.h" #include "prbit.h" #include "nsString.h" #include "nsHTMLStyleSheet.h" #include "nsRuleWalker.h" #include "nsMappedAttributes.h" #include "nsUnicharUtils.h" @@ -831,17 +832,17 @@ nsAttrAndChildArray::SetChildAtPos(void* if (aIndex != aChildCount) { nsIContent* next = static_cast<nsIContent*>(*(aPos + 1)); aChild->mNextSibling = next; next->mPreviousSibling = aChild; } } size_t -nsAttrAndChildArray::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsAttrAndChildArray::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; if (mImpl) { // Don't add the size taken by *mMappedAttrs because it's shared. n += aMallocSizeOf(mImpl); uint32_t slotCount = AttrSlotCount();
--- a/content/base/src/nsAttrAndChildArray.h +++ b/content/base/src/nsAttrAndChildArray.h @@ -7,16 +7,17 @@ * Storage of the children and attributes of a DOM node; storage for * the two is unified to minimize footprint. */ #ifndef nsAttrAndChildArray_h___ #define nsAttrAndChildArray_h___ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nscore.h" #include "nsAttrName.h" #include "nsAttrValue.h" #include "nsCaseTreatment.h" class nsINode; class nsIContent; @@ -111,17 +112,17 @@ public: void Compact(); bool CanFitMoreAttrs() const { return AttrSlotCount() < ATTRCHILD_ARRAY_MAX_ATTR_COUNT || !AttrSlotIsTaken(ATTRCHILD_ARRAY_MAX_ATTR_COUNT - 1); } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; bool HasMappedAttrs() const { return MappedAttrCount(); } private: nsAttrAndChildArray(const nsAttrAndChildArray& aOther) MOZ_DELETE; nsAttrAndChildArray& operator=(const nsAttrAndChildArray& aOther) MOZ_DELETE;
--- a/content/base/src/nsAttrValue.cpp +++ b/content/base/src/nsAttrValue.cpp @@ -10,16 +10,17 @@ #include "mozilla/DebugOnly.h" #include "mozilla/HashFunctions.h" #include "nsAttrValue.h" #include "nsAttrValueInlines.h" #include "nsIAtom.h" #include "nsUnicharUtils.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/StyleRule.h" #include "mozilla/css/Declaration.h" #include "nsContentUtils.h" #include "nsReadableUtils.h" #include "prprf.h" #include "nsHTMLCSSStyleSheet.h" #include "nsCSSParser.h" #include "nsStyledElement.h" @@ -1944,17 +1945,17 @@ nsAttrValue::StringToInteger(const nsASt *aStrict = false; } } return value; } size_t -nsAttrValue::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsAttrValue::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; switch (BaseType()) { case eStringBase: { nsStringBuffer* str = static_cast<nsStringBuffer*>(GetPtr()); n += str ? str->SizeOfIncludingThisIfUnshared(aMallocSizeOf) : 0;
--- a/content/base/src/nsAttrValue.h +++ b/content/base/src/nsAttrValue.h @@ -16,16 +16,17 @@ #include "nsStringBuffer.h" #include "nsColor.h" #include "nsCaseTreatment.h" #include "nsMargin.h" #include "nsCOMPtr.h" #include "SVGAttrValueWrapper.h" #include "nsTArrayForwardDeclare.h" #include "nsIAtom.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/BindingDeclarations.h" class nsAString; class nsIDocument; class nsStyledElementNotElementCSSInlineStyle; struct MiscContainer; namespace mozilla { @@ -366,17 +367,17 @@ public: * Parse a string into a CSS style rule. * * @param aString the style attribute value to be parsed. * @param aElement the element the attribute is set on. */ bool ParseStyleAttribute(const nsAString& aString, nsStyledElementNotElementCSSInlineStyle* aElement); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: // These have to be the same as in ValueType enum ValueBaseType { eStringBase = eString, // 00 eOtherBase = 0x01, // 01 eAtomBase = eAtom, // 10 eIntegerBase = 0x03 // 11
--- a/content/base/src/nsDOMAttributeMap.cpp +++ b/content/base/src/nsDOMAttributeMap.cpp @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * Implementation of the |attributes| property of DOM Core's Element object. */ #include "nsDOMAttributeMap.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Attr.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/MozNamedAttrMapBinding.h" #include "nsAttrName.h" #include "nsContentUtils.h" #include "nsError.h" #include "nsIDocument.h" #include "nsIDOMDocument.h" @@ -528,24 +529,24 @@ nsDOMAttributeMap::Enumerate(AttrCache:: void *aUserArg) const { return mAttributeCache.EnumerateRead(aFunc, aUserArg); } size_t AttrCacheSizeEnumerator(const nsAttrKey& aKey, const nsRefPtr<Attr>& aValue, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { return aMallocSizeOf(aValue.get()); } size_t -nsDOMAttributeMap::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsDOMAttributeMap::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mAttributeCache.SizeOfExcludingThis(AttrCacheSizeEnumerator, aMallocSizeOf); // NB: mContent is non-owning and thus not counted. return n; }
--- a/content/base/src/nsDOMAttributeMap.h +++ b/content/base/src/nsDOMAttributeMap.h @@ -5,16 +5,17 @@ /* * Implementation of the |attributes| property of DOM Core's Element object. */ #ifndef nsDOMAttributeMap_h #define nsDOMAttributeMap_h +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Attr.h" #include "mozilla/ErrorResult.h" #include "nsCycleCollectionParticipant.h" #include "nsIDOMMozNamedAttrMap.h" #include "nsRefPtrHashtable.h" #include "nsStringGlue.h" #include "nsWrapperCache.h" @@ -176,17 +177,17 @@ public: RemoveNamedItemNS(const nsAString& aNamespaceURI, const nsAString& aLocalName, ErrorResult& aError); void GetSupportedNames(nsTArray<nsString>& aNames) { // No supported names we want to show up in iteration. } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: nsCOMPtr<Element> mContent; /** * Cache of Attrs. */ AttrCache mAttributeCache;
--- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -4,16 +4,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * Base class for all our document implementations. */ #include "mozilla/DebugOnly.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "mozilla/Likely.h" #include <algorithm> #ifdef MOZ_LOGGING // so we can get logging even in release builds #define FORCE_PR_LOG 1 #endif @@ -447,17 +448,17 @@ nsIdentifierMapEntry::HasIdElementExpose Element* idElement = GetIdElement(); return idElement && nsGenericHTMLElement::ShouldExposeIdAsHTMLDocumentProperty(idElement); } // static size_t nsIdentifierMapEntry::SizeOfExcludingThis(nsIdentifierMapEntry* aEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void*) { return aEntry->GetKey().SizeOfExcludingThisIfUnshared(aMallocSizeOf); } // Helper structs for the content->subdoc map class SubDocMapEntry : public PLDHashEntryHdr @@ -11061,24 +11062,24 @@ void nsIDocument::DocSizeOfIncludingThis(nsWindowSizes* aWindowSizes) const { aWindowSizes->mDOMOther += aWindowSizes->mMallocSizeOf(this); DocSizeOfExcludingThis(aWindowSizes); } static size_t SizeOfStyleSheetsElementIncludingThis(nsIStyleSheet* aStyleSheet, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aData) { return aStyleSheet->SizeOfIncludingThis(aMallocSizeOf); } size_t -nsDocument::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsDocument::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { // This SizeOfExcludingThis() overrides the one from nsINode. But // nsDocuments can only appear at the top of the DOM tree, and we use the // specialized DocSizeOfExcludingThis() in that case. So this should never // be called. MOZ_NOT_REACHED("nsDocument::SizeOfExcludingThis"); return 0; }
--- a/content/base/src/nsDocument.h +++ b/content/base/src/nsDocument.h @@ -57,16 +57,17 @@ #include "nsIContentViewer.h" #include "nsIDOMXPathNSResolver.h" #include "nsIInterfaceRequestor.h" #include "nsILoadContext.h" #include "nsIProgressEventSink.h" #include "nsISecurityEventSink.h" #include "nsIChannelEventSink.h" #include "imgIRequest.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/DOMImplementation.h" #include "nsIDOMTouchEvent.h" #include "nsIInlineEventHandlers.h" #include "nsDataHashtable.h" #include "mozilla/TimeStamp.h" #include "mozilla/Attributes.h" #define XML_DECLARATION_BITS_DECLARATION_EXISTS (1 << 0) @@ -219,17 +220,17 @@ public: return mozilla::HashGeneric(aKey->mCallback, aKey->mData); } enum { ALLOW_MEMMOVE = true }; ChangeCallback mKey; }; static size_t SizeOfExcludingThis(nsIdentifierMapEntry* aEntry, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* aArg); private: void FireChangeCallbacks(Element* aOldElement, Element* aNewElement, bool aImageOnly = false); // empty if there are no elements with this ID. // The elements are stored as weak pointers.
--- a/content/base/src/nsGenericDOMDataNode.cpp +++ b/content/base/src/nsGenericDOMDataNode.cpp @@ -6,16 +6,17 @@ /* * Base class for DOM Core's nsIDOMComment, nsIDOMDocumentType, nsIDOMText, * nsIDOMCDATASection, and nsIDOMProcessingInstruction nodes. */ #include "mozilla/DebugOnly.h" #include "nsGenericDOMDataNode.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nsIDocument.h" #include "nsEventListenerManager.h" #include "nsIDOMDocument.h" #include "nsReadableUtils.h" #include "nsMutationEvent.h" #include "nsINameSpaceManager.h" #include "nsIURI.h" @@ -915,15 +916,15 @@ nsGenericDOMDataNode::GetAttributeChange nsIAtom* nsGenericDOMDataNode::GetClassAttributeName() const { return nullptr; } size_t -nsGenericDOMDataNode::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsGenericDOMDataNode::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = nsIContent::SizeOfExcludingThis(aMallocSizeOf); n += mText.SizeOfExcludingThis(aMallocSizeOf); return n; }
--- a/content/base/src/nsINode.cpp +++ b/content/base/src/nsINode.cpp @@ -10,16 +10,17 @@ #include "nsINode.h" #include "AccessCheck.h" #include "jsapi.h" #include "mozAutoDocUpdate.h" #include "mozilla/CORSMode.h" #include "mozilla/Likely.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Telemetry.h" #include "mozilla/Util.h" #include "nsAsyncDOMEvent.h" #include "nsAttrValueOrString.h" #include "nsBindingManager.h" #include "nsCCUncollectableMarker.h" #include "nsClientRect.h" #include "nsContentCreatorFunctions.h" @@ -2069,17 +2070,17 @@ nsINode::UnbindObject(nsISupports* aObje nsCOMArray<nsISupports>* objects = static_cast<nsCOMArray<nsISupports>*>(GetProperty(nsGkAtoms::keepobjectsalive)); if (objects) { objects->RemoveObject(aObject); } } size_t -nsINode::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsINode::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; nsEventListenerManager* elm = const_cast<nsINode*>(this)->GetListenerManager(false); if (elm) { n += elm->SizeOfIncludingThis(aMallocSizeOf); }
--- a/content/base/src/nsMappedAttributes.cpp +++ b/content/base/src/nsMappedAttributes.cpp @@ -7,16 +7,17 @@ * A unique per-element set of attributes that is used as an * nsIStyleRule; used to implement presentational attributes. */ #include "nsMappedAttributes.h" #include "nsHTMLStyleSheet.h" #include "nsRuleWalker.h" #include "mozilla/HashFunctions.h" +#include "mozilla/MemoryReporting.h" using namespace mozilla; nsMappedAttributes::nsMappedAttributes(nsHTMLStyleSheet* aSheet, nsMapRuleToAttributesFunc aMapRuleFunc) : mAttrCount(0), mSheet(aSheet), mRuleMapper(aMapRuleFunc) @@ -243,17 +244,17 @@ nsMappedAttributes::IndexOfAttr(nsIAtom* return i; } } return -1; } size_t -nsMappedAttributes::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsMappedAttributes::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { NS_ASSERTION(mAttrCount == mBufferSize, "mBufferSize and mAttrCount are expected to be the same."); size_t n = aMallocSizeOf(this); for (uint16_t i = 0; i < mAttrCount; ++i) { n += Attrs()[i].mValue.SizeOfExcludingThis(aMallocSizeOf); }
--- a/content/base/src/nsMappedAttributes.h +++ b/content/base/src/nsMappedAttributes.h @@ -10,16 +10,17 @@ #ifndef nsMappedAttributes_h___ #define nsMappedAttributes_h___ #include "nsAttrAndChildArray.h" #include "nsMappedAttributeElement.h" #include "nsIStyleRule.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" class nsIAtom; class nsHTMLStyleSheet; class nsRuleWalker; class nsMappedAttributes MOZ_FINAL : public nsIStyleRule { public: @@ -72,17 +73,17 @@ public: // nsIStyleRule virtual void MapRuleInfoInto(nsRuleData* aRuleData) MOZ_OVERRIDE; #ifdef DEBUG virtual void List(FILE* out = stdout, int32_t aIndent = 0) const MOZ_OVERRIDE; #endif - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: nsMappedAttributes(const nsMappedAttributes& aCopy); ~nsMappedAttributes(); struct InternalAttr { nsAttrName mName;
--- a/content/base/src/nsPropertyTable.cpp +++ b/content/base/src/nsPropertyTable.cpp @@ -15,16 +15,17 @@ /** * nsPropertyTable allows a set of arbitrary key/value pairs to be stored * for any number of nodes, in a global hashtable rather than on the nodes * themselves. Nodes can be any type of object; the hashtable keys are * nsIAtom pointers, and the values are void pointers. */ +#include "mozilla/MemoryReporting.h" #include "nsPropertyTable.h" #include "pldhash.h" #include "nsError.h" #include "nsIAtom.h" struct PropertyListMapEntry : public PLDHashEntryHdr { const void *key; void *value; @@ -47,17 +48,17 @@ public: // Destroy all remaining properties (without removing them) NS_HIDDEN_(void) Destroy(); NS_HIDDEN_(bool) Equals(nsIAtom *aPropertyName) { return mName == aPropertyName; } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); nsCOMPtr<nsIAtom> mName; // property name PLDHashTable mObjectValueMap; // map of object/value pairs NSPropertyDtorFunc mDtorFunc; // property specific value dtor function void* mDtorData; // pointer to pass to dtor bool mTransfer; // whether to transfer in // TransferOrDeleteAllPropertiesFor @@ -335,25 +336,25 @@ nsPropertyTable::PropertyList::DeletePro if (mDtorFunc) mDtorFunc(const_cast<void*>(aObject.get()), mName, value, mDtorData); return true; } size_t -nsPropertyTable::PropertyList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsPropertyTable::PropertyList::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { size_t n = aMallocSizeOf(this); n += PL_DHashTableSizeOfExcludingThis(&mObjectValueMap, nullptr, aMallocSizeOf); return n; } size_t -nsPropertyTable::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsPropertyTable::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; for (PropertyList *prop = mPropertyList; prop; prop = prop->mNext) { n += prop->SizeOfIncludingThis(aMallocSizeOf); } return n;
--- a/content/base/src/nsPropertyTable.h +++ b/content/base/src/nsPropertyTable.h @@ -18,16 +18,17 @@ * for any number of nodes, in a global hashtable rather than on the nodes * themselves. Nodes can be any type of object; the hashtable keys are * nsIAtom pointers, and the values are void pointers. */ #ifndef nsPropertyTable_h_ #define nsPropertyTable_h_ +#include "mozilla/MemoryReporting.h" #include "nscore.h" class nsIAtom; typedef void (*NSPropertyFunc)(void *aObject, nsIAtom *aPropertyName, void *aPropertyValue, @@ -171,17 +172,17 @@ class nsPropertyTable * XPCOM objects. The function will call NS_IF_RELASE on the value * to destroy it. */ static void SupportsDtorFunc(void *aObject, nsIAtom *aPropertyName, void *aPropertyValue, void *aData); class PropertyList; - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: NS_HIDDEN_(void) DestroyPropertyList(); NS_HIDDEN_(PropertyList*) GetPropertyListFor(nsIAtom *aPropertyName) const; NS_HIDDEN_(void*) GetPropertyInternal(nsPropertyOwner aObject, nsIAtom *aPropertyName, bool aRemove, nsresult *aStatus);
--- a/content/base/src/nsTextFragment.cpp +++ b/content/base/src/nsTextFragment.cpp @@ -11,16 +11,17 @@ #include "nsTextFragment.h" #include "nsCRT.h" #include "nsReadableUtils.h" #include "nsMemory.h" #include "nsBidiUtils.h" #include "nsUnicharUtils.h" #include "nsUTF8Utils.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/SSE.h" #include "nsTextFragmentImpl.h" #include <algorithm> #define TEXTFRAG_WHITE_AFTER_NEWLINE 50 #define TEXTFRAG_MAX_NEWLINES 7 // Static buffer used for common fragments @@ -387,17 +388,17 @@ nsTextFragment::Append(const PRUnichar* copy_string(aBuffer, aBuffer + aLength, converter); m1b = buff; mState.mLength += aLength; } /* virtual */ size_t -nsTextFragment::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsTextFragment::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { if (Is2b()) { return aMallocSizeOf(m2b); } if (mState.mInHeap) { return aMallocSizeOf(m1b); }
--- a/content/base/src/nsTextFragment.h +++ b/content/base/src/nsTextFragment.h @@ -7,16 +7,17 @@ * node); if only codepoints below 256 are used, the text is stored as * a char*; otherwise the text is stored as a PRUnichar* */ #ifndef nsTextFragment_h___ #define nsTextFragment_h___ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsString.h" #include "nsReadableUtils.h" #include "nsTraceRefcnt.h" class nsString; class nsCString; @@ -169,17 +170,17 @@ public: // which causes crashes because we assume this structure is no more than // 32 bits! uint32_t mInHeap : 1; uint32_t mIs2b : 1; uint32_t mIsBidi : 1; uint32_t mLength : 29; }; - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: void ReleaseText(); /** * Scan the contents of the fragment and turn on mState.mIsBidi if it * includes any Bidi characters. */
--- a/content/base/src/nsXMLHttpRequest.cpp +++ b/content/base/src/nsXMLHttpRequest.cpp @@ -1,14 +1,15 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "nsXMLHttpRequest.h" #include "nsISimpleEnumerator.h" #include "nsIXPConnect.h" #include "nsICharsetConverterManager.h" #include "nsLayoutCID.h" #include "nsXPIDLString.h" @@ -529,17 +530,17 @@ void nsXMLHttpRequest::DisconnectFromOwner() { nsXHREventTarget::DisconnectFromOwner(); Abort(); } size_t nsXMLHttpRequest::SizeOfEventTargetIncludingThis( - nsMallocSizeOfFun aMallocSizeOf) const + MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mResponseBody.SizeOfExcludingThisIfUnshared(aMallocSizeOf); // Why is this safe? Because no-one else will report this string. The // other possible sharers of this string are as follows. // // - The JS engine could hold copies if the JS code holds references, e.g.
--- a/content/base/src/nsXMLHttpRequest.h +++ b/content/base/src/nsXMLHttpRequest.h @@ -32,16 +32,17 @@ #include "nsDOMEventTargetHelper.h" #include "nsDOMFile.h" #include "nsDOMBlobBuilder.h" #include "nsIPrincipal.h" #include "nsIScriptObjectPrincipal.h" #include "nsISizeOfEventTarget.h" #include "mozilla/Assertions.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/BindingUtils.h" #include "mozilla/dom/TypedArray.h" #include "mozilla/dom/XMLHttpRequestBinding.h" #include "mozilla/dom/XMLHttpRequestUploadBinding.h" #include "mozilla/dom/EventHandlerBinding.h" #ifdef Status /* Xlib headers insist on this for some reason... Nuke it because @@ -222,17 +223,17 @@ public: // nsIInterfaceRequestor NS_DECL_NSIINTERFACEREQUESTOR // nsITimerCallback NS_DECL_NSITIMERCALLBACK // nsISizeOfEventTarget virtual size_t - SizeOfEventTargetIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + SizeOfEventTargetIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; NS_REALLY_FORWARD_NSIDOMEVENTTARGET(nsXHREventTarget) #ifdef DEBUG void StaticAssertions(); #endif // event handler
--- a/content/canvas/src/WebGLBuffer.h +++ b/content/canvas/src/WebGLBuffer.h @@ -8,16 +8,17 @@ #include "WebGLObjectModel.h" #include "WebGLElementArrayCache.h" #include "GLDefs.h" #include "nsWrapperCache.h" #include "mozilla/LinkedList.h" +#include "mozilla/MemoryReporting.h" namespace mozilla { class WebGLElementArrayCache; class WebGLBuffer MOZ_FINAL : public nsISupports , public WebGLRefCountedObject<WebGLBuffer> @@ -27,17 +28,17 @@ class WebGLBuffer MOZ_FINAL { public: WebGLBuffer(WebGLContext *context); ~WebGLBuffer(); void Delete(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t sizeOfCache = mCache ? mCache->SizeOfIncludingThis(aMallocSizeOf) : 0; return aMallocSizeOf(this) + sizeOfCache; } bool HasEverBeenBound() { return mHasEverBeenBound; } void SetHasEverBeenBound(bool x) { mHasEverBeenBound = x; } GLuint GLName() const { return mGLName; } GLuint ByteLength() const { return mByteLength; }
--- a/content/canvas/src/WebGLElementArrayCache.cpp +++ b/content/canvas/src/WebGLElementArrayCache.cpp @@ -2,16 +2,17 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "WebGLElementArrayCache.h" #include "nsTArray.h" #include "mozilla/Assertions.h" +#include "mozilla/MemoryReporting.h" #include <cstdlib> #include <cstring> #include <limits> #include <algorithm> namespace mozilla { @@ -301,17 +302,17 @@ public: } return true; } void Invalidate(size_t firstByte, size_t lastByte); void Update(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + mTreeData.SizeOfExcludingThis(aMallocSizeOf); } }; // TreeForType: just a template helper to select the right tree object for a given // element type. template<typename T> @@ -553,17 +554,17 @@ bool WebGLElementArrayCache::Validate(GL return Validate<uint8_t>(maxAllowed, firstElement, countElements); if (type == LOCAL_GL_UNSIGNED_SHORT) return Validate<uint16_t>(maxAllowed, firstElement, countElements); if (type == LOCAL_GL_UNSIGNED_INT) return Validate<uint32_t>(maxAllowed, firstElement, countElements); return false; } -size_t WebGLElementArrayCache::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { +size_t WebGLElementArrayCache::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t uint8TreeSize = mUint8Tree ? mUint8Tree->SizeOfIncludingThis(aMallocSizeOf) : 0; size_t uint16TreeSize = mUint16Tree ? mUint16Tree->SizeOfIncludingThis(aMallocSizeOf) : 0; size_t uint32TreeSize = mUint32Tree ? mUint32Tree->SizeOfIncludingThis(aMallocSizeOf) : 0; return aMallocSizeOf(this) + mByteSize + uint8TreeSize + uint16TreeSize + uint32TreeSize;
--- a/content/canvas/src/WebGLElementArrayCache.h +++ b/content/canvas/src/WebGLElementArrayCache.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef WEBGLELEMENTARRAYCACHE_H #define WEBGLELEMENTARRAYCACHE_H +#include "mozilla/MemoryReporting.h" #include "mozilla/StandardInteger.h" #include "nscore.h" #include "GLDefs.h" namespace mozilla { template<typename T> struct WebGLElementArrayCacheTree; @@ -42,17 +43,17 @@ public: , mByteSize(0) , mUint8Tree(nullptr) , mUint16Tree(nullptr) , mUint32Tree(nullptr) {} ~WebGLElementArrayCache(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: template<typename T> bool Validate(uint32_t maxAllowed, size_t first, size_t count); size_t ByteSize() const { return mByteSize;
--- a/content/canvas/src/WebGLShader.cpp +++ b/content/canvas/src/WebGLShader.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "WebGLObjectModel.h" #include "WebGLShader.h" #include "WebGLContext.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/WebGLRenderingContextBinding.h" #include "nsContentUtils.h" using namespace mozilla; JSObject* WebGLShader::WrapObject(JSContext *cx, JS::Handle<JSObject*> scope) { return dom::WebGLShaderBinding::Wrap(cx, scope, this); @@ -34,17 +35,17 @@ WebGLShader::Delete() { mSource.Truncate(); mTranslationLog.Truncate(); mContext->MakeContextCurrent(); mContext->gl->fDeleteShader(mGLName); LinkedListElement<WebGLShader>::removeFrom(mContext->mShaders); } size_t -WebGLShader::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { +WebGLShader::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + mSource.SizeOfExcludingThisIfUnshared(aMallocSizeOf) + mTranslationLog.SizeOfExcludingThisIfUnshared(aMallocSizeOf); } void WebGLShader::SetTranslationSuccess() { mTranslationLog.SetIsVoid(true);
--- a/content/canvas/src/WebGLShader.h +++ b/content/canvas/src/WebGLShader.h @@ -9,16 +9,17 @@ #include "WebGLObjectModel.h" #include "WebGLUniformInfo.h" #include "nsWrapperCache.h" #include "angle/ShaderLang.h" #include "mozilla/LinkedList.h" +#include "mozilla/MemoryReporting.h" namespace mozilla { struct WebGLMappedIdentifier { nsCString original, mapped; // ASCII strings WebGLMappedIdentifier(const nsACString& o, const nsACString& m) : original(o), mapped(m) {} }; @@ -34,17 +35,17 @@ class WebGLShader MOZ_FINAL public: WebGLShader(WebGLContext *context, WebGLenum stype); ~WebGLShader() { DeleteOnce(); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; WebGLuint GLName() { return mGLName; } WebGLenum ShaderType() { return mType; } void SetSource(const nsAString& src) { // XXX do some quick gzip here maybe -- getting this will be very rare mSource.Assign(src); }
--- a/content/events/src/nsEventListenerManager.cpp +++ b/content/events/src/nsEventListenerManager.cpp @@ -19,16 +19,17 @@ #include "nsGkAtoms.h" #include "nsPIDOMWindow.h" #include "nsIJSEventListener.h" #include "nsIScriptGlobalObject.h" #include "nsIScriptRuntime.h" #include "nsLayoutUtils.h" #include "nsINameSpaceManager.h" #include "nsIContent.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nsIFrame.h" #include "nsView.h" #include "nsViewManager.h" #include "nsCOMPtr.h" #include "nsIServiceManager.h" #include "nsIScriptSecurityManager.h" #include "nsError.h" @@ -1270,17 +1271,17 @@ nsEventListenerManager::GetEventHandlerI if (handler.HasEventHandler()) { return &handler; } return nullptr; } size_t -nsEventListenerManager::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsEventListenerManager::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mListeners.SizeOfExcludingThis(aMallocSizeOf); uint32_t count = mListeners.Length(); for (uint32_t i = 0; i < count; ++i) { nsIJSEventListener* jsl = mListeners.ElementAt(i).GetJSListener(); if (jsl) {
--- a/content/events/src/nsEventListenerManager.h +++ b/content/events/src/nsEventListenerManager.h @@ -13,16 +13,17 @@ #include "nsAutoPtr.h" #include "nsCOMArray.h" #include "nsCxPusher.h" #include "nsIScriptContext.h" #include "nsCycleCollectionParticipant.h" #include "nsTObserverArray.h" #include "nsGUIEvent.h" #include "nsIJSEventListener.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/EventTarget.h" #include "mozilla/dom/EventListenerBinding.h" class nsIDOMEvent; class nsIAtom; class nsIWidget; struct nsPoint; struct EventTypeData; @@ -395,17 +396,17 @@ public: /** * Returns true if there may be a touch event listener registered, * false if there definitely isn't. */ bool MayHaveTouchEventListener() { return mMayHaveTouchEventListener; } bool MayHaveMouseEnterLeaveEventListener() { return mMayHaveMouseEnterLeaveEventListener; } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; void MarkForCC(); mozilla::dom::EventTarget* GetTarget() { return mTarget; } protected: void HandleEventInternal(nsPresContext* aPresContext, nsEvent* aEvent, nsIDOMEvent** aDOMEvent,
--- a/content/html/content/src/HTMLAnchorElement.cpp +++ b/content/html/content/src/HTMLAnchorElement.cpp @@ -1,14 +1,15 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set tw=80 expandtab softtabstop=2 ts=2 sw=2: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/HTMLAnchorElement.h" #include "mozilla/dom/HTMLAnchorElementBinding.h" #include "nsCOMPtr.h" #include "nsContentUtils.h" #include "nsGkAtoms.h" #include "nsIPresShell.h" #include "nsIDocument.h" @@ -408,16 +409,16 @@ HTMLAnchorElement::ParseAttribute(int32_ nsEventStates HTMLAnchorElement::IntrinsicState() const { return Link::LinkState() | nsGenericHTMLElement::IntrinsicState(); } size_t -HTMLAnchorElement::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +HTMLAnchorElement::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return nsGenericHTMLElement::SizeOfExcludingThis(aMallocSizeOf) + Link::SizeOfExcludingThis(aMallocSizeOf); } } // namespace mozilla } // namespace dom
--- a/content/html/content/src/HTMLAreaElement.cpp +++ b/content/html/content/src/HTMLAreaElement.cpp @@ -1,14 +1,15 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set tw=80 expandtab softtabstop=2 ts=2 sw=2: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/HTMLAreaElement.h" #include "mozilla/dom/HTMLAreaElementBinding.h" #include "base/compiler_specific.h" NS_IMPL_NS_NEW_HTML_ELEMENT(Area) namespace mozilla { namespace dom { @@ -227,17 +228,17 @@ HTMLAreaElement::GetHrefURI() const nsEventStates HTMLAreaElement::IntrinsicState() const { return Link::LinkState() | nsGenericHTMLElement::IntrinsicState(); } size_t -HTMLAreaElement::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +HTMLAreaElement::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return nsGenericHTMLElement::SizeOfExcludingThis(aMallocSizeOf) + Link::SizeOfExcludingThis(aMallocSizeOf); } JSObject* HTMLAreaElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aScope) {
--- a/content/html/content/src/HTMLLinkElement.cpp +++ b/content/html/content/src/HTMLLinkElement.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/HTMLLinkElement.h" #include "mozilla/dom/HTMLLinkElementBinding.h" #include "base/compiler_specific.h" #include "nsGenericHTMLElement.h" #include "nsILink.h" #include "nsGkAtoms.h" #include "nsStyleConsts.h" @@ -399,17 +400,17 @@ HTMLLinkElement::GetCORSMode() const nsEventStates HTMLLinkElement::IntrinsicState() const { return Link::LinkState() | nsGenericHTMLElement::IntrinsicState(); } size_t -HTMLLinkElement::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +HTMLLinkElement::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return nsGenericHTMLElement::SizeOfExcludingThis(aMallocSizeOf) + Link::SizeOfExcludingThis(aMallocSizeOf); } JSObject* HTMLLinkElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aScope) {
--- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -6,16 +6,17 @@ // Needs to be first. #include "base/basictypes.h" #include "Navigator.h" #include "nsIXULAppInfo.h" #include "nsPluginArray.h" #include "nsMimeTypeArray.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/DesktopNotification.h" #include "nsGeolocation.h" #include "nsIHttpProtocolHandler.h" #include "nsICachingChannel.h" #include "nsIDocShell.h" #include "nsIWebContentHandlerRegistrar.h" #include "nsICookiePermission.h" #include "nsIScriptSecurityManager.h" @@ -1531,17 +1532,17 @@ Navigator::GetMozCameras(nsISupports** a nsCOMPtr<nsIObserver> cameraManager = mCameraManager.get(); cameraManager.forget(aCameraManager); return NS_OK; } size_t -Navigator::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +Navigator::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); // TODO: add SizeOfIncludingThis() to nsMimeTypeArray, bug 674113. // TODO: add SizeOfIncludingThis() to nsPluginArray, bug 674114. // TODO: add SizeOfIncludingThis() to Geolocation, bug 674115. // TODO: add SizeOfIncludingThis() to DesktopNotificationCenter, bug 674116.
--- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h @@ -2,16 +2,17 @@ /* vim: set ts=2 sw=2 et tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_dom_Navigator_h #define mozilla_dom_Navigator_h +#include "mozilla/MemoryReporting.h" #include "nsIDOMNavigator.h" #include "nsIDOMNavigatorGeolocation.h" #include "nsIDOMNavigatorDeviceStorage.h" #include "nsIDOMNavigatorDesktopNotification.h" #include "nsIDOMClientInformation.h" #include "nsINavigatorBattery.h" #include "nsIDOMNavigatorSms.h" #include "nsIDOMNavigatorMobileMessage.h" @@ -195,17 +196,17 @@ public: { return mWindow; } void RefreshMIMEArray(); static bool HasDesktopNotificationSupport(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; /** * For use during document.write where our inner window changes. */ void SetWindow(nsPIDOMWindow *aInnerWindow); /** * Called when the inner window navigates to a new page.
--- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -3,16 +3,17 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "base/basictypes.h" #include <algorithm> /* This must occur *after* base/basictypes.h to avoid typedefs conflicts. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" // Local Includes #include "nsGlobalWindow.h" #include "Navigator.h" #include "nsScreen.h" #include "nsHistory.h" #include "nsPerformance.h" @@ -11219,17 +11220,17 @@ bool nsGlobalWindow::HasIndexedDBSupport() { return Preferences::GetBool("indexedDB.feature.enabled", true); } static size_t SizeOfEventTargetObjectsEntryExcludingThisFun( nsPtrHashKey<nsDOMEventTargetHelper> *aEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void *arg) { nsISupports *supports = aEntry->GetKey(); nsCOMPtr<nsISizeOfEventTarget> iface = do_QueryInterface(supports); return iface ? iface->SizeOfEventTargetIncludingThis(aMallocSizeOf) : 0; } void
--- a/dom/base/nsIJSEventListener.h +++ b/dom/base/nsIJSEventListener.h @@ -6,16 +6,17 @@ #ifndef nsIJSEventListener_h__ #define nsIJSEventListener_h__ #include "nsIScriptContext.h" #include "jsapi.h" #include "xpcpublic.h" #include "nsIDOMEventListener.h" #include "nsIAtom.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/EventHandlerBinding.h" #define NS_IJSEVENTLISTENER_IID \ { 0x92f9212b, 0xa6aa, 0x4867, \ { 0x93, 0x8a, 0x56, 0xbe, 0x17, 0x67, 0x4f, 0xd4 } } class nsEventHandler { @@ -231,33 +232,33 @@ public: { mHandler.SetHandler(aHandler); } void SetHandler(mozilla::dom::OnErrorEventHandlerNonNull* aHandler) { mHandler.SetHandler(aHandler); } - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return 0; // Measurement of the following members may be added later if DMD finds it // is worthwhile: // - mContext // - mTarget // // The following members are not measured: // - mScopeObject: because they're measured by the JS memory // reporters // - mHandler: may be shared with others // - mEventName: shared with others } - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } protected: virtual ~nsIJSEventListener() { NS_ASSERTION(!mTarget, "Should have called Disconnect()!");
--- a/dom/base/nsISizeOfEventTarget.h +++ b/dom/base/nsISizeOfEventTarget.h @@ -2,16 +2,17 @@ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsISizeOfEventTarget_h___ #define nsISizeOfEventTarget_h___ +#include "mozilla/MemoryReporting.h" #include "nsISupports.h" #define NS_ISIZEOFEVENTTARGET_IID \ {0xa1e08cb9, 0x5455, 0x4593, \ { 0xb4, 0x1f, 0x38, 0x7a, 0x85, 0x44, 0xd0, 0xb5 }} /** * This class is much the same as nsISizeOf, but is specifically for measuring @@ -26,14 +27,14 @@ class nsISizeOfEventTarget : public nsIS public: NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISIZEOFEVENTTARGET_IID) /** * Measures the size of the things pointed to by the object, plus the object * itself. */ virtual size_t - SizeOfEventTargetIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const = 0; + SizeOfEventTargetIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsISizeOfEventTarget, NS_ISIZEOFEVENTTARGET_IID) #endif /* nsISizeOfEventTarget_h___ */
--- a/dom/base/nsScriptNameSpaceManager.cpp +++ b/dom/base/nsScriptNameSpaceManager.cpp @@ -22,33 +22,34 @@ #include "nsXPIDLString.h" #include "nsPrintfCString.h" #include "nsReadableUtils.h" #include "nsHashKeys.h" #include "nsDOMClassInfo.h" #include "nsCRT.h" #include "nsIObserverService.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" #include "mozilla/Services.h" #define NS_INTERFACE_PREFIX "nsI" #define NS_DOM_INTERFACE_PREFIX "nsIDOM" using namespace mozilla; // Our extended PLDHashEntryHdr class GlobalNameMapEntry : public PLDHashEntryHdr { public: // Our hash table ops don't care about the order of these members nsString mKey; nsGlobalNameStruct mGlobalName; - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) { + size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) { // Measurement of the following members may be added later if DMD finds it // is worthwhile: // - mGlobalName return mKey.SizeOfExcludingThisMustBeUnshared(aMallocSizeOf); } }; @@ -872,25 +873,25 @@ void nsScriptNameSpaceManager::EnumerateGlobalNames(GlobalNameEnumerator aEnumerator, void* aClosure) { GlobalNameClosure closure = { aEnumerator, aClosure }; PL_DHashTableEnumerate(&mGlobalNames, EnumerateGlobalName, &closure); } static size_t -SizeOfEntryExcludingThis(PLDHashEntryHdr *aHdr, nsMallocSizeOfFun aMallocSizeOf, +SizeOfEntryExcludingThis(PLDHashEntryHdr *aHdr, MallocSizeOf aMallocSizeOf, void *aArg) { GlobalNameMapEntry* entry = static_cast<GlobalNameMapEntry*>(aHdr); return entry->SizeOfExcludingThis(aMallocSizeOf); } size_t -nsScriptNameSpaceManager::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsScriptNameSpaceManager::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t n = 0; n += PL_DHashTableSizeOfExcludingThis(&mGlobalNames, SizeOfEntryExcludingThis, aMallocSizeOf); n += PL_DHashTableSizeOfExcludingThis(&mNavigatorNames, SizeOfEntryExcludingThis, aMallocSizeOf); return n; }
--- a/dom/base/nsScriptNameSpaceManager.h +++ b/dom/base/nsScriptNameSpaceManager.h @@ -16,16 +16,17 @@ * Date Modified by Description of modification * 03/27/2000 IBM Corp. Added PR_CALLBACK for Optlink * use in OS2 */ #ifndef nsScriptNameSpaceManager_h__ #define nsScriptNameSpaceManager_h__ +#include "mozilla/MemoryReporting.h" #include "nsIScriptNameSpaceManager.h" #include "nsString.h" #include "nsID.h" #include "pldhash.h" #include "nsDOMClassInfo.h" #include "nsIObserver.h" #include "nsWeakReference.h" @@ -151,17 +152,17 @@ public: mozilla::dom::ConstructorEnabled* aConstructorEnabled); typedef PLDHashOperator (* GlobalNameEnumerator)(const nsAString& aGlobalName, void* aClosure); void EnumerateGlobalNames(GlobalNameEnumerator aEnumerator, void* aClosure); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: // Adds a new entry to the hash and returns the nsGlobalNameStruct // that aKey will be mapped to. If mType in the returned // nsGlobalNameStruct is != eTypeNotInitialized, an entry for aKey // already existed. nsGlobalNameStruct *AddToHash(PLDHashTable *aTable, const nsAString *aKey, const PRUnichar **aClassName = nullptr);
--- a/dom/base/nsWindowMemoryReporter.h +++ b/dom/base/nsWindowMemoryReporter.h @@ -7,34 +7,35 @@ #ifndef nsWindowMemoryReporter_h__ #define nsWindowMemoryReporter_h__ #include "nsIMemoryReporter.h" #include "nsIObserver.h" #include "nsDataHashtable.h" #include "nsWeakReference.h" #include "nsAutoPtr.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "nsArenaMemoryStats.h" #include "mozilla/Attributes.h" // This should be used for any nsINode sub-class that has fields of its own // that it needs to measure; any sub-class that doesn't use it will inherit // SizeOfExcludingThis from its super-class. SizeOfIncludingThis() need not be // defined, it is inherited from nsINode. #define NS_DECL_SIZEOF_EXCLUDING_THIS \ - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; class nsWindowSizes { public: - nsWindowSizes(nsMallocSizeOfFun aMallocSizeOf) { + nsWindowSizes(mozilla::MallocSizeOf aMallocSizeOf) { memset(this, 0, sizeof(nsWindowSizes)); mMallocSizeOf = aMallocSizeOf; } - nsMallocSizeOfFun mMallocSizeOf; + mozilla::MallocSizeOf mMallocSizeOf; nsArenaMemoryStats mArenaStats; size_t mDOMElementNodes; size_t mDOMTextNodes; size_t mDOMCDATANodes; size_t mDOMCommentNodes; size_t mDOMEventTargets; size_t mDOMOther; size_t mStyleSheets;
--- a/dom/src/events/nsJSEventListener.h +++ b/dom/src/events/nsJSEventListener.h @@ -2,16 +2,17 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsJSEventListener_h__ #define nsJSEventListener_h__ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsIDOMKeyEvent.h" #include "nsIJSEventListener.h" #include "nsIDOMEventListener.h" #include "jsapi.h" #include "nsCOMPtr.h" #include "nsIAtom.h" #include "nsIScriptContext.h" #include "nsCycleCollectionParticipant.h" @@ -28,17 +29,17 @@ public: NS_DECL_CYCLE_COLLECTING_ISUPPORTS // nsIDOMEventListener interface NS_DECL_NSIDOMEVENTLISTENER // nsIJSEventListener - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS(nsJSEventListener) protected: virtual void UpdateScopeObject(JS::Handle<JSObject*> aScopeObject);
--- a/gfx/thebes/gfxASurface.cpp +++ b/gfx/thebes/gfxASurface.cpp @@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsIMemoryReporter.h" #include "nsMemory.h" #include "mozilla/Base64.h" #include "mozilla/CheckedInt.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "gfxASurface.h" #include "gfxContext.h" #include "gfxImageSurface.h" #include "nsRect.h" #include "cairo.h" @@ -666,24 +667,24 @@ gfxASurface::RecordMemoryFreed() { if (mBytesRecorded) { RecordMemoryUsedForSurfaceType(GetType(), -mBytesRecorded); mBytesRecorded = 0; } } size_t -gfxASurface::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxASurface::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { // We don't measure mSurface because cairo doesn't allow it. return 0; } size_t -gfxASurface::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxASurface::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } /* static */ uint8_t gfxASurface::BytesPerPixel(gfxImageFormat aImageFormat) { switch (aImageFormat) {
--- a/gfx/thebes/gfxASurface.h +++ b/gfx/thebes/gfxASurface.h @@ -5,16 +5,17 @@ #ifndef GFX_ASURFACE_H #define GFX_ASURFACE_H #ifdef MOZ_DUMP_PAINTING #define MOZ_DUMP_IMAGES #endif +#include "mozilla/MemoryReporting.h" #include "gfxTypes.h" #include "gfxRect.h" #include "nsAutoPtr.h" #include "nsAutoRef.h" #include "nsThreadUtils.h" typedef struct _cairo_surface cairo_surface_t; typedef struct _cairo_user_data_key cairo_user_data_key_t; @@ -205,18 +206,18 @@ public: * in which case the value that was recorded for this surface will * be freed. */ void RecordMemoryUsed(int32_t aBytes); void RecordMemoryFreed(); virtual int32_t KnownMemoryUsed() { return mBytesRecorded; } - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; // gfxASurface has many sub-classes. This method indicates if a sub-class // is capable of measuring its own size accurately. If not, the caller // must fall back to a computed size. (Note that gfxASurface can actually // measure itself, but we must |return false| here because it serves as the // (conservative) default for all the sub-classes. Therefore, this // function should only be called on a |gfxASurface*| that actually points // to a sub-class of gfxASurface.) virtual bool SizeOfIsMeasured() const { return false; }
--- a/gfx/thebes/gfxDWriteFontList.cpp +++ b/gfx/thebes/gfxDWriteFontList.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #ifdef MOZ_LOGGING #define FORCE_PR_LOG /* Allow logging in the release build */ #endif /* MOZ_LOGGING */ #include "gfxDWriteFontList.h" #include "gfxDWriteFonts.h" @@ -208,26 +209,26 @@ gfxDWriteFontFamily::LocalizedName(nsASt if (FAILED(hr)) { return; } aLocalizedName = nsDependentString(famName.Elements()); } void -gfxDWriteFontFamily::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFontFamily::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { gfxFontFamily::SizeOfExcludingThis(aMallocSizeOf, aSizes); // TODO: // This doesn't currently account for |mDWFamily| } void -gfxDWriteFontFamily::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFontFamily::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } //////////////////////////////////////////////////////////////////////////////// // gfxDWriteFontEntry @@ -550,26 +551,26 @@ gfxDWriteFontEntry::IsCJKFont() mIsCJK = true; } } return mIsCJK; } void -gfxDWriteFontEntry::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFontEntry::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { gfxFontEntry::SizeOfExcludingThis(aMallocSizeOf, aSizes); // TODO: // This doesn't currently account for the |mFont| and |mFontFile| members } void -gfxDWriteFontEntry::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFontEntry::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } //////////////////////////////////////////////////////////////////////////////// // gfxDWriteFontList @@ -1213,17 +1214,17 @@ gfxDWriteFontList::ResolveFontName(const if (mNonExistingFonts.Contains(keyName)) { return false; } return gfxPlatformFontList::ResolveFontName(aFontName, aResolvedFontName); } void -gfxDWriteFontList::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFontList::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { gfxPlatformFontList::SizeOfExcludingThis(aMallocSizeOf, aSizes); aSizes->mFontListSize += mFontSubstitutes.SizeOfExcludingThis(SizeOfFamilyNameEntryExcludingThis, aMallocSizeOf); @@ -1231,17 +1232,17 @@ gfxDWriteFontList::SizeOfExcludingThis(n mNonExistingFonts.SizeOfExcludingThis(aMallocSizeOf); for (uint32_t i = 0; i < mNonExistingFonts.Length(); ++i) { aSizes->mFontListSize += mNonExistingFonts[i].SizeOfExcludingThisIfUnshared(aMallocSizeOf); } } void -gfxDWriteFontList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFontList::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } static HRESULT GetFamilyName(IDWriteFont *aFont, nsString& aFamilyName) {
--- a/gfx/thebes/gfxDWriteFontList.h +++ b/gfx/thebes/gfxDWriteFontList.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_DWRITEFONTLIST_H #define GFX_DWRITEFONTLIST_H +#include "mozilla/MemoryReporting.h" #include "gfxDWriteCommon.h" #include "gfxFont.h" #include "gfxUserFontSet.h" #include "cairo-win32.h" #include "gfxPlatformFontList.h" #include "gfxPlatform.h" @@ -43,19 +44,19 @@ public: virtual ~gfxDWriteFontFamily(); virtual void FindStyleVariations(); virtual void LocalizedName(nsAString& aLocalizedName); void SetForceGDIClassic(bool aForce) { mForceGDIClassic = aForce; } - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; protected: /** This font family's directwrite fontfamily object */ nsRefPtr<IDWriteFontFamily> mDWFamily; bool mForceGDIClassic; }; @@ -147,19 +148,19 @@ public: nsresult ReadCMAP(); bool IsCJKFont(); void SetForceGDIClassic(bool aForce) { mForceGDIClassic = aForce; } bool GetForceGDIClassic() { return mForceGDIClassic; } - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; protected: friend class gfxDWriteFont; friend class gfxDWriteFontList; virtual nsresult CopyFontTable(uint32_t aTableTag, FallibleTArray<uint8_t>& aBuffer) MOZ_OVERRIDE; @@ -360,19 +361,19 @@ public: bool UseGDIFontTableAccess() { return mGDIFontTableAccess; } virtual gfxFontFamily* FindFamily(const nsAString& aFamily); virtual void GetFontFamilyList(nsTArray<nsRefPtr<gfxFontFamily> >& aFamilyArray); gfxFloat GetForceGDIClassicMaxFontSize() { return mForceGDIClassicMaxFontSize; } - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; private: friend class gfxDWriteFontFamily; nsresult GetFontSubstitutes(); void GetDirectWriteSubstitutes();
--- a/gfx/thebes/gfxDWriteFonts.cpp +++ b/gfx/thebes/gfxDWriteFonts.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "gfxDWriteFonts.h" #include "gfxDWriteShaper.h" #include "gfxHarfBuzzShaper.h" #include <algorithm> #include "gfxGraphiteShaper.h" #include "gfxDWriteFontList.h" #include "gfxContext.h" #include <dwrite.h> @@ -663,26 +664,26 @@ gfxDWriteFont::MeasureGlyphWidth(uint16_ if (SUCCEEDED(hr)) { return NS_lround(metrics.advanceWidth * mFUnitsConvFactor); } } return 0; } void -gfxDWriteFont::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFont::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { gfxFont::SizeOfExcludingThis(aMallocSizeOf, aSizes); aSizes->mFontInstances += aMallocSizeOf(mMetrics) + mGlyphWidths.SizeOfExcludingThis(nullptr, aMallocSizeOf); } void -gfxDWriteFont::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxDWriteFont::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { aSizes->mFontInstances += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } TemporaryRef<ScaledFont> gfxDWriteFont::GetScaledFont(mozilla::gfx::DrawTarget *aTarget)
--- a/gfx/thebes/gfxDWriteFonts.h +++ b/gfx/thebes/gfxDWriteFonts.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_WINDOWSDWRITEFONTS_H #define GFX_WINDOWSDWRITEFONTS_H +#include "mozilla/MemoryReporting.h" #include <dwrite.h> #include "gfxFont.h" #include "gfxUserFontSet.h" #include "cairo-win32.h" #include "nsDataHashtable.h" #include "nsHashKeys.h" @@ -53,19 +54,19 @@ public: Spacing *aSpacing); virtual bool ProvidesGlyphWidths(); virtual int32_t GetGlyphWidth(gfxContext *aCtx, uint16_t aGID); virtual mozilla::TemporaryRef<mozilla::gfx::GlyphRenderingOptions> GetGlyphRenderingOptions(); - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; virtual FontType GetType() const { return FONT_TYPE_DWRITE; } virtual mozilla::TemporaryRef<mozilla::gfx::ScaledFont> GetScaledFont(mozilla::gfx::DrawTarget *aTarget); virtual cairo_scaled_font_t *GetCairoScaledFont();
--- a/gfx/thebes/gfxFT2FontList.cpp +++ b/gfx/thebes/gfxFT2FontList.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #if defined(MOZ_WIDGET_GTK2) #include "gfxPlatformGtk.h" #define gfxToolkitPlatform gfxPlatformGtk #elif defined(MOZ_WIDGET_QT) #include <qfontinfo.h> #include "gfxQtPlatform.h" @@ -459,26 +460,26 @@ FT2FontEntry::CopyFontTable(uint32_t aTa uint8_t *buf = aBuffer.Elements(); status = FT_Load_Sfnt_Table(face, aTableTag, 0, buf, &len); NS_ENSURE_TRUE(status == FT_Err_Ok, NS_ERROR_FAILURE); return NS_OK; } void -FT2FontEntry::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +FT2FontEntry::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { gfxFontEntry::SizeOfExcludingThis(aMallocSizeOf, aSizes); aSizes->mFontListSize += mFilename.SizeOfExcludingThisIfUnshared(aMallocSizeOf); } void -FT2FontEntry::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +FT2FontEntry::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } /* * FT2FontFamily
--- a/gfx/thebes/gfxFT2FontList.h +++ b/gfx/thebes/gfxFT2FontList.h @@ -1,16 +1,18 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_FT2FONTLIST_H #define GFX_FT2FONTLIST_H +#include "mozilla/MemoryReporting.h" + #ifdef XP_WIN #include "gfxWindowsPlatform.h" #include <windows.h> #endif #include "gfxPlatformFontList.h" namespace mozilla { namespace dom { @@ -69,19 +71,19 @@ public: virtual nsresult CopyFontTable(uint32_t aTableTag, FallibleTArray<uint8_t>& aBuffer) MOZ_OVERRIDE; // Check for various kinds of brokenness, and set flags on the entry // accordingly so that we avoid using bad font tables void CheckForBrokenFont(gfxFontFamily *aFamily); - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; FT_Face mFTFace; cairo_font_face_t *mFontFace; nsCString mFilename; uint8_t mFTFontIndex; };
--- a/gfx/thebes/gfxFT2Fonts.cpp +++ b/gfx/thebes/gfxFT2Fonts.cpp @@ -30,16 +30,17 @@ #include "nsTArray.h" #include "nsUnicodeRange.h" #include "nsCRT.h" #include "nsXULAppAPI.h" #include "prlog.h" #include "prinit.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" // rounding and truncation functions for a Freetype floating point number // (FT26Dot6) stored in a 32bit integer with high 26 bits for the integer // part and low 6 bits for the fractional part. #define MOZ_FT_ROUND(x) (((x) + 32) & ~63) // 63 = 2^6 - 1 #define MOZ_FT_TRUNC(x) ((x) >> 6) #define CONVERT_DESIGN_UNITS_TO_PIXELS(v, s) \ @@ -637,23 +638,23 @@ gfxFT2Font::FillGlyphDataForChar(uint32_ gd->glyphIndex = gid; gd->lsbDelta = face->glyph->lsb_delta; gd->rsbDelta = face->glyph->rsb_delta; gd->xAdvance = face->glyph->advance.x; } void -gfxFT2Font::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFT2Font::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { gfxFont::SizeOfExcludingThis(aMallocSizeOf, aSizes); aSizes->mFontInstances += mCharGlyphCache.SizeOfExcludingThis(nullptr, aMallocSizeOf); } void -gfxFT2Font::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFT2Font::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { aSizes->mFontInstances += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); }
--- a/gfx/thebes/gfxFT2Fonts.h +++ b/gfx/thebes/gfxFT2Fonts.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_FT2FONTS_H #define GFX_FT2FONTS_H +#include "mozilla/MemoryReporting.h" #include "cairo.h" #include "gfxTypes.h" #include "gfxFont.h" #include "gfxFT2FontBase.h" #include "gfxContext.h" #include "gfxFontUtils.h" #include "gfxUserFontSet.h" @@ -58,19 +59,19 @@ public: // new functions if (entry->mData.glyphIndex == 0xffffffffU) { // this is a new entry, fill it FillGlyphDataForChar(ch, &entry->mData); } return &entry->mData; } - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; protected: virtual bool ShapeText(gfxContext *aContext, const PRUnichar *aText, uint32_t aOffset, uint32_t aLength, int32_t aScript,
--- a/gfx/thebes/gfxFont.cpp +++ b/gfx/thebes/gfxFont.cpp @@ -30,16 +30,17 @@ #include "gfxScriptItemizer.h" #include "nsUnicodeProperties.h" #include "nsMathUtils.h" #include "nsBidiUtils.h" #include "nsUnicodeRange.h" #include "nsStyleConsts.h" #include "mozilla/FloatingPoint.h" #include "mozilla/Likely.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" #include "mozilla/Services.h" #include "mozilla/Telemetry.h" #include "gfxSVGGlyphs.h" #include "cairo.h" #include "gfxFontTest.h" @@ -320,20 +321,20 @@ public: // Disconnect from the HashEntry (because the blob has already been // removed from the hashtable). void ForgetHashEntry() { mHashtable = nullptr; mHashKey = 0; } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return mTableData.SizeOfExcludingThis(aMallocSizeOf); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } private: // The font table data block, owned (via adoption) FallibleTArray<uint8_t> mTableData; // The blob destroy function needs to know the owning hashtable @@ -571,17 +572,17 @@ gfxFontEntry::CheckForGraphiteTables() { AutoTable silfTable(this, TRUETYPE_TAG('S','i','l','f')); mHasGraphiteTables = silfTable && hb_blob_get_length(silfTable) > 0; } /* static */ size_t gfxFontEntry::FontTableHashEntry::SizeOfEntryExcludingThis (FontTableHashEntry *aEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { FontListSizes *sizes = static_cast<FontListSizes*>(aUserArg); if (aEntry->mBlob) { sizes->mFontTableCacheSize += aMallocSizeOf(aEntry->mBlob); } if (aEntry->mSharedBlobData) { sizes->mFontTableCacheSize += @@ -589,34 +590,34 @@ gfxFontEntry::FontTableHashEntry::SizeOf } // the size of the table is recorded in the FontListSizes record, // so we return 0 here for the function result return 0; } void -gfxFontEntry::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFontEntry::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += mName.SizeOfExcludingThisIfUnshared(aMallocSizeOf); // cmaps are shared so only non-shared cmaps are included here if (mCharacterMap && mCharacterMap->mBuildOnTheFly) { aSizes->mCharMapsSize += mCharacterMap->SizeOfIncludingThis(aMallocSizeOf); } aSizes->mFontTableCacheSize += mFontTableCache.SizeOfExcludingThis( FontTableHashEntry::SizeOfEntryExcludingThis, aMallocSizeOf, aSizes); } void -gfxFontEntry::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFontEntry::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } ////////////////////////////////////////////////////////////////////////////// // @@ -1192,17 +1193,17 @@ gfxFontFamily::FindFont(const nsAString& gfxFontEntry *fe = mAvailableFonts[i].get(); if (fe && fe->Name() == aPostscriptName) return fe; } return nullptr; } void -gfxFontFamily::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFontFamily::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += mName.SizeOfExcludingThisIfUnshared(aMallocSizeOf); aSizes->mCharMapsSize += mFamilyCharacterMap.SizeOfExcludingThis(aMallocSizeOf); aSizes->mFontListSize += @@ -1211,17 +1212,17 @@ gfxFontFamily::SizeOfExcludingThis(nsMal gfxFontEntry *fe = mAvailableFonts[i]; if (fe) { fe->SizeOfIncludingThis(aMallocSizeOf, aSizes); } } } void -gfxFontFamily::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFontFamily::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } /* * gfxFontCache - global cache of gfxFont instances. @@ -1471,40 +1472,40 @@ gfxFontCache::ClearCachedWordsForFont(Ha { aHashEntry->mFont->ClearCachedWords(); return PL_DHASH_NEXT; } /*static*/ size_t gfxFontCache::SizeOfFontEntryExcludingThis(HashEntry* aHashEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { HashEntry *entry = static_cast<HashEntry*>(aHashEntry); FontCacheSizes *sizes = static_cast<FontCacheSizes*>(aUserArg); entry->mFont->SizeOfExcludingThis(aMallocSizeOf, sizes); // The font records its size in the |sizes| parameter, so we return zero // here to the hashtable enumerator. return 0; } void -gfxFontCache::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFontCache::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { // TODO: add the overhead of the expiration tracker (generation arrays) mFonts.SizeOfExcludingThis(SizeOfFontEntryExcludingThis, aMallocSizeOf, aSizes); } void -gfxFontCache::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFontCache::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { aSizes->mFontInstances += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } #define MAX_SSXX_VALUE 99 #define MAX_CVXX_VALUE 99 @@ -3666,37 +3667,37 @@ gfxFont::SynthesizeSpaceWidth(uint32_t a case 0x200a: return GetAdjustedSize() / 10; // hair space case 0x202f: return GetAdjustedSize() / 5; // narrow no-break space default: return -1.0; } } /*static*/ size_t gfxFont::WordCacheEntrySizeOfExcludingThis(CacheHashEntry* aHashEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { return aMallocSizeOf(aHashEntry->mShapedWord.get()); } void -gfxFont::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFont::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { for (uint32_t i = 0; i < mGlyphExtentsArray.Length(); ++i) { aSizes->mFontInstances += mGlyphExtentsArray[i]->SizeOfIncludingThis(aMallocSizeOf); } aSizes->mShapedWords += mWordCache.SizeOfExcludingThis(WordCacheEntrySizeOfExcludingThis, aMallocSizeOf); } void -gfxFont::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxFont::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { aSizes->mFontInstances += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } gfxGlyphExtents::~gfxGlyphExtents() { @@ -3743,17 +3744,17 @@ gfxGlyphExtents::GlyphWidths::~GlyphWidt uintptr_t bits = mBlocks[i]; if (bits && !(bits & 0x1)) { delete[] reinterpret_cast<uint16_t *>(bits); } } } uint32_t -gfxGlyphExtents::GlyphWidths::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxGlyphExtents::GlyphWidths::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { uint32_t i; uint32_t size = mBlocks.SizeOfExcludingThis(aMallocSizeOf); for (i = 0; i < mBlocks.Length(); ++i) { uintptr_t bits = mBlocks[i]; if (bits && !(bits & 0x1)) { size += aMallocSizeOf(reinterpret_cast<void*>(bits)); } @@ -3807,24 +3808,24 @@ gfxGlyphExtents::SetTightGlyphExtents(ui return; entry->x = aExtentsAppUnits.X(); entry->y = aExtentsAppUnits.Y(); entry->width = aExtentsAppUnits.Width(); entry->height = aExtentsAppUnits.Height(); } size_t -gfxGlyphExtents::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxGlyphExtents::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return mContainedGlyphWidths.SizeOfExcludingThis(aMallocSizeOf) + mTightGlyphExtents.SizeOfExcludingThis(nullptr, aMallocSizeOf); } size_t -gfxGlyphExtents::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxGlyphExtents::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } gfxFontGroup::gfxFontGroup(const nsAString& aFamilies, const gfxFontStyle *aStyle, gfxUserFontSet *aUserFontSet) : mFamilies(aFamilies), mStyle(*aStyle), mUnderlineOffset(UNDERLINE_OFFSET_NOT_SET) { mUserFontSet = nullptr; @@ -6542,31 +6543,31 @@ gfxTextRun::ClusterIterator::ClusterAdva if (mCurrentChar == uint32_t(-1)) { return 0; } return mTextRun->GetAdvanceWidth(mCurrentChar, ClusterLength(), aProvider); } size_t -gfxTextRun::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) +gfxTextRun::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) { // The second arg is how much gfxTextRun::AllocateStorage would have // allocated. size_t total = mGlyphRuns.SizeOfExcludingThis(aMallocSizeOf); if (mDetailedGlyphs) { total += mDetailedGlyphs->SizeOfIncludingThis(aMallocSizeOf); } return total; } size_t -gfxTextRun::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +gfxTextRun::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } #ifdef DEBUG void gfxTextRun::Dump(FILE* aOutput) {
--- a/gfx/thebes/gfxFont.h +++ b/gfx/thebes/gfxFont.h @@ -20,16 +20,17 @@ #include "gfxFontConstants.h" #include "gfxPlatform.h" #include "nsIAtom.h" #include "nsISupportsImpl.h" #include "gfxPattern.h" #include "mozilla/HashFunctions.h" #include "nsIMemoryReporter.h" #include "gfxFontFeatures.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/gfx/Types.h" #include "mozilla/Attributes.h" #include <algorithm> #include "nsUnicodeProperties.h" #include "harfbuzz/hb.h" typedef struct _cairo_scaled_font cairo_scaled_font_t; typedef struct gr_face gr_face; @@ -191,17 +192,17 @@ public: } gfxCharacterMap() : mHash(0), mBuildOnTheFly(false), mShared(false) { } void CalcHash() { mHash = GetChecksum(); } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return gfxSparseBitSet::SizeOfExcludingThis(aMallocSizeOf); } // hash of the cmap bitvector uint32_t mHash; // if cmap is built on the fly it's never shared bool mBuildOnTheFly; @@ -406,19 +407,19 @@ public: virtual void ForgetHBFace(); // Get Graphite face corresponding to this font file. // Caller must call gfxFontEntry::ReleaseGrFace when finished with it. gr_face* GetGrFace(); virtual void ReleaseGrFace(gr_face* aFace); // For memory reporting - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; nsString mName; nsString mFamilyName; bool mItalic : 1; bool mFixedPitch : 1; bool mIsProxy : 1; @@ -615,17 +616,17 @@ private: // Return a strong reference to the blob. // Callers must hb_blob_destroy the returned blob. hb_blob_t *GetBlob() const; void Clear(); static size_t SizeOfEntryExcludingThis(FontTableHashEntry *aEntry, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* aUserArg); private: static void DeleteFontTableBlobData(void *aBlobData); // not implemented FontTableHashEntry& operator=(FontTableHashEntry& toCopy); FontTableBlobData *mSharedBlobData; @@ -776,19 +777,19 @@ public: void SortAvailableFonts(); // check whether the family fits into the simple 4-face model, // so we can use simplified style-matching; // if so set the mIsSimpleFamily flag (defaults to False before we've checked) void CheckForSimpleFamily(); // For memory reporter - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; // Only used for debugging checks - does a linear search bool ContainsFace(gfxFontEntry* aFontEntry) { uint32_t i, numFonts = mAvailableFonts.Length(); for (i = 0; i < numFonts; i++) { if (mAvailableFonts[i] == aFontEntry) { return true; @@ -944,19 +945,19 @@ public: mFonts.Clear(); AgeAllGenerations(); } void FlushShapedWordCaches() { mFonts.EnumerateEntries(ClearCachedWordsForFont, nullptr); } - void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; - void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; protected: class MemoryReporter MOZ_FINAL : public nsIMemoryMultiReporter { public: NS_DECL_ISUPPORTS @@ -991,17 +992,17 @@ protected: return mozilla::HashGeneric(aKey->mStyle->Hash(), aKey->mFontEntry); } enum { ALLOW_MEMMOVE = true }; gfxFont* mFont; }; static size_t SizeOfFontEntryExcludingThis(HashEntry* aHashEntry, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* aUserArg); nsTHashtable<HashEntry> mFonts; static PLDHashOperator ClearCachedWordsForFont(HashEntry* aHashEntry, void*); static PLDHashOperator AgeCachedWordsForFont(HashEntry* aHashEntry, void*); static void WordCacheExpirationTimerCallback(nsITimer* aTimer, void* aCache); nsCOMPtr<nsITimer> mWordCacheExpirationTimer; @@ -1165,18 +1166,18 @@ public: void SetContainedGlyphWidthAppUnits(uint32_t aGlyphID, uint16_t aWidth) { mContainedGlyphWidths.Set(aGlyphID, aWidth); } void SetTightGlyphExtents(uint32_t aGlyphID, const gfxRect& aExtentsAppUnits); int32_t GetAppUnitsPerDevUnit() { return mAppUnitsPerDevUnit; } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: class HashEntry : public nsUint32HashKey { public: // When constructing a new entry in the hashtable, we'll leave this // blank. The caller of Put() will fill this in. HashEntry(KeyTypePointer aPtr) : nsUint32HashKey(aPtr) {} HashEntry(const HashEntry& toCopy) : nsUint32HashKey(toCopy) { @@ -1203,17 +1204,17 @@ private: if (GetGlyphOffset(bits) != indexInBlock) return INVALID_WIDTH; return GetWidth(bits); } uint16_t *widths = reinterpret_cast<uint16_t *>(bits); return widths[indexInBlock]; } - uint32_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + uint32_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; ~GlyphWidths(); private: static uint32_t GetGlyphOffset(uintptr_t aBits) { NS_ASSERTION(aBits & 0x1, "This is really a pointer..."); return (aBits >> 1) & ((1 << BLOCK_SIZE_BITS) - 1); } @@ -1670,19 +1671,19 @@ public: // Discard all cached word records; called on memory-pressure notification. void ClearCachedWords() { if (mWordCache.IsInitialized()) { mWordCache.Clear(); } } - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; typedef enum { FONT_TYPE_DWRITE, FONT_TYPE_GDI, FONT_TYPE_FT2, FONT_TYPE_MAC, FONT_TYPE_OS2, @@ -1880,17 +1881,17 @@ protected: enum { ALLOW_MEMMOVE = true }; nsAutoPtr<gfxShapedWord> mShapedWord; }; static size_t WordCacheEntrySizeOfExcludingThis(CacheHashEntry* aHashEntry, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* aUserArg); nsTHashtable<CacheHashEntry> mWordCache; static PLDHashOperator AgeCacheEntry(CacheHashEntry *aEntry, void *aUserData); static const uint32_t kShapedWordCacheMaxAge = 3; bool mIsValid; @@ -2373,17 +2374,17 @@ protected: if (!mOffsetToIndex.InsertElementSorted(DGRec(aOffset, detailIndex), CompareRecordOffsets())) { return nullptr; } } return details; } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) { + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { return aMallocSizeOf(this) + mDetails.SizeOfExcludingThis(aMallocSizeOf) + mOffsetToIndex.SizeOfExcludingThis(aMallocSizeOf); } private: struct DGRec { DGRec(const uint32_t& aOffset, const uint32_t& aIndex) @@ -3131,23 +3132,23 @@ public: gfxFloat mPartWidth; bool mClipBeforePart; bool mClipAfterPart; }; // return storage used by this run, for memory reporter; // nsTransformedTextRun needs to override this as it holds additional data - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) MOZ_MUST_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) MOZ_MUST_OVERRIDE; // Get the size, if it hasn't already been gotten, marking as it goes. - size_t MaybeSizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) { + size_t MaybeSizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { if (mFlags & gfxTextRunFactory::TEXT_RUN_SIZE_ACCOUNTED) { return 0; } mFlags |= gfxTextRunFactory::TEXT_RUN_SIZE_ACCOUNTED; return SizeOfIncludingThis(aMallocSizeOf); } void ResetSizeOfAccountingFlags() { mFlags &= ~gfxTextRunFactory::TEXT_RUN_SIZE_ACCOUNTED;
--- a/gfx/thebes/gfxFontUtils.h +++ b/gfx/thebes/gfxFontUtils.h @@ -18,16 +18,17 @@ #include "nsCOMPtr.h" #include "nsIRunnable.h" #include "nsThreadUtils.h" #include "nsComponentManagerUtils.h" #include "nsTArray.h" #include "nsAutoPtr.h" #include "mozilla/Likely.h" #include "mozilla/Endian.h" +#include "mozilla/MemoryReporting.h" #include "zlib.h" #include <algorithm> /* Bug 341128 - w32api defines min/max which causes problems with <bitset> */ #ifdef __MINGW32__ #undef min #undef max @@ -252,27 +253,27 @@ public: const uint32_t end = std::min<uint32_t>(aEnd - blockFirstBit, BLOCK_SIZE_BITS - 1); for (uint32_t bit = start; bit <= end; ++bit) { block->mBits[bit>>3] &= ~(1 << (bit & 0x7)); } } } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t total = mBlocks.SizeOfExcludingThis(aMallocSizeOf); for (uint32_t i = 0; i < mBlocks.Length(); i++) { if (mBlocks[i]) { total += aMallocSizeOf(mBlocks[i]); } } return total; } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } // clear out all blocks in the array void reset() { uint32_t i; for (i = 0; i < mBlocks.Length(); i++) mBlocks[i] = nullptr;
--- a/gfx/thebes/gfxGDIFont.cpp +++ b/gfx/thebes/gfxGDIFont.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "gfxGDIFont.h" #include "gfxGDIShaper.h" #include "gfxUniscribeShaper.h" #include "gfxHarfBuzzShaper.h" #include <algorithm> #include "gfxGraphiteShaper.h" #include "gfxWindowsPlatform.h" #include "gfxContext.h" @@ -546,23 +547,23 @@ gfxGDIFont::GetGlyphWidth(gfxContext *aC mGlyphWidths.Put(aGID, width); return width; } return -1; } void -gfxGDIFont::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxGDIFont::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { gfxFont::SizeOfExcludingThis(aMallocSizeOf, aSizes); aSizes->mFontInstances += aMallocSizeOf(mMetrics) + mGlyphWidths.SizeOfExcludingThis(nullptr, aMallocSizeOf); } void -gfxGDIFont::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxGDIFont::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { aSizes->mFontInstances += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); }
--- a/gfx/thebes/gfxGDIFont.h +++ b/gfx/thebes/gfxGDIFont.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_GDIFONT_H #define GFX_GDIFONT_H +#include "mozilla/MemoryReporting.h" #include "gfxFont.h" #include "gfxGDIFontList.h" #include "nsDataHashtable.h" #include "nsHashKeys.h" #include "cairo.h" @@ -48,19 +49,19 @@ public: /* required for MathML to suppress effects of ClearType "padding" */ virtual gfxFont* CopyWithAntialiasOption(AntialiasOption anAAOption); virtual bool ProvidesGlyphWidths() { return true; } // get hinted glyph width in pixels as 16.16 fixed-point value virtual int32_t GetGlyphWidth(gfxContext *aCtx, uint16_t aGID); - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; virtual FontType GetType() const { return FONT_TYPE_GDI; } protected: virtual void CreatePlatformShaper(); /* override to check for uniscribe failure and fall back to GDI */
--- a/gfx/thebes/gfxGDIFontList.cpp +++ b/gfx/thebes/gfxGDIFontList.cpp @@ -22,16 +22,17 @@ #include "nsUnicharUtils.h" #include "nsDirectoryServiceUtils.h" #include "nsDirectoryServiceDefs.h" #include "nsAppDirectoryServiceDefs.h" #include "nsISimpleEnumerator.h" #include "nsIWindowsRegKey.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Telemetry.h" #include <usp10.h> #include <t2embapi.h> using namespace mozilla; #define ROUND(x) floor((x) + 0.5) @@ -439,17 +440,17 @@ GDIFontEntry::CreateFontEntry(const nsAS GDIFontEntry *fe = new GDIFontEntry(aName, aFontType, aItalic, aWeight, aStretch, aUserFontData, aFamilyHasItalicFace); return fe; } void -GDIFontEntry::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +GDIFontEntry::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } /*************************************************************** * @@ -1060,30 +1061,30 @@ gfxGDIFontList::ResolveFontName(const ns if (gfxPlatformFontList::ResolveFontName(aFontName, aResolvedFontName)) return true; return false; } void -gfxGDIFontList::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxGDIFontList::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { gfxPlatformFontList::SizeOfExcludingThis(aMallocSizeOf, aSizes); aSizes->mFontListSize += mFontSubstitutes.SizeOfExcludingThis(SizeOfFamilyNameEntryExcludingThis, aMallocSizeOf); aSizes->mFontListSize += mNonExistingFonts.SizeOfExcludingThis(aMallocSizeOf); for (uint32_t i = 0; i < mNonExistingFonts.Length(); ++i) { aSizes->mFontListSize += mNonExistingFonts[i].SizeOfExcludingThisIfUnshared(aMallocSizeOf); } } void -gfxGDIFontList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxGDIFontList::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); }
--- a/gfx/thebes/gfxGDIFontList.h +++ b/gfx/thebes/gfxGDIFontList.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_GDIFONTLIST_H #define GFX_GDIFONTLIST_H +#include "mozilla/MemoryReporting.h" #include "gfxWindowsPlatform.h" #include "gfxPlatformFontList.h" #include "nsGkAtoms.h" #include <windows.h> class AutoDC // get the global device context, and auto-release it on destruction { @@ -234,17 +235,17 @@ public: } virtual bool SkipDuringSystemFallback() { return !HasCmapTable(); // explicitly skip non-SFNT fonts } virtual bool TestCharacterMap(uint32_t aCh); - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; // create a font entry for a font with a given name static GDIFontEntry* CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType, bool aItalic, uint16_t aWeight, int16_t aStretch, gfxUserFontData* aUserFontData, @@ -316,19 +317,19 @@ public: const nsAString& aFontName); virtual gfxFontEntry* MakePlatformFont(const gfxProxyFontEntry *aProxyEntry, const uint8_t *aFontData, uint32_t aLength); virtual bool ResolveFontName(const nsAString& aFontName, nsAString& aResolvedFontName); - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; private: friend class gfxWindowsPlatform; gfxGDIFontList(); void InitializeFontEmbeddingProcs();
--- a/gfx/thebes/gfxImageSurface.cpp +++ b/gfx/thebes/gfxImageSurface.cpp @@ -1,14 +1,15 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "gfxAlphaRecovery.h" #include "gfxImageSurface.h" #include "cairo.h" #include "mozilla/gfx/2D.h" #include "gfx2DGlue.h" #include <algorithm> @@ -192,27 +193,27 @@ gfxImageSurface::ComputeStride(const gfx } stride = ((stride + 3) / 4) * 4; return stride; } size_t -gfxImageSurface::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxImageSurface::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = gfxASurface::SizeOfExcludingThis(aMallocSizeOf); if (mOwnsData) { n += aMallocSizeOf(mData); } return n; } size_t -gfxImageSurface::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +gfxImageSurface::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } bool gfxImageSurface::SizeOfIsMeasured() const { return true;
--- a/gfx/thebes/gfxImageSurface.h +++ b/gfx/thebes/gfxImageSurface.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_IMAGESURFACE_H #define GFX_IMAGESURFACE_H +#include "mozilla/MemoryReporting.h" #include "gfxASurface.h" #include "gfxPoint.h" // ARGB -- raw buffer.. wont be changed.. good for storing data. class gfxSubimageSurface; namespace mozilla { @@ -108,19 +109,19 @@ public: virtual already_AddRefed<gfxImageSurface> GetAsImageSurface(); /** See gfxASurface.h. */ virtual void MovePixels(const nsIntRect& aSourceRect, const nsIntPoint& aDestTopLeft) MOZ_OVERRIDE; static long ComputeStride(const gfxIntSize&, gfxImageFormat); - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; virtual bool SizeOfIsMeasured() const MOZ_OVERRIDE; protected: gfxImageSurface(); void InitWithData(unsigned char *aData, const gfxIntSize& aSize, long aStride, gfxImageFormat aFormat); /**
--- a/gfx/thebes/gfxMacFont.cpp +++ b/gfx/thebes/gfxMacFont.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "gfxMacFont.h" #include "gfxCoreTextShaper.h" #include "gfxHarfBuzzShaper.h" #include <algorithm> #include "gfxGraphiteShaper.h" #include "gfxPlatformMac.h" #include "gfxContext.h" #include "gfxFontUtils.h" @@ -405,23 +406,23 @@ gfxMacFont::GetScaledFont(DrawTarget *aT nativeFont.mFont = GetCGFontRef(); mAzureScaledFont = mozilla::gfx::Factory::CreateScaledFontWithCairo(nativeFont, GetAdjustedSize(), mScaledFont); } return mAzureScaledFont; } void -gfxMacFont::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxMacFont::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { gfxFont::SizeOfExcludingThis(aMallocSizeOf, aSizes); // mCGFont is shared with the font entry, so not counted here; // and we don't have APIs to measure the cairo mFontFace object } void -gfxMacFont::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +gfxMacFont::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const { aSizes->mFontInstances += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); }
--- a/gfx/thebes/gfxMacFont.h +++ b/gfx/thebes/gfxMacFont.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_MACFONT_H #define GFX_MACFONT_H +#include "mozilla/MemoryReporting.h" #include "gfxFont.h" #include "gfxMacPlatformFontList.h" #include "mozilla/gfx/2D.h" #include "cairo.h" class gfxMacFont : public gfxFont { @@ -37,19 +38,19 @@ public: virtual RunMetrics Measure(gfxTextRun *aTextRun, uint32_t aStart, uint32_t aEnd, BoundingBoxType aBoundingBoxType, gfxContext *aContextForTightBoundingBox, Spacing *aSpacing); virtual mozilla::TemporaryRef<mozilla::gfx::ScaledFont> GetScaledFont(mozilla::gfx::DrawTarget *aTarget); - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontCacheSizes* aSizes) const; virtual FontType GetType() const { return FONT_TYPE_MAC; } protected: virtual void CreatePlatformShaper(); // override to prefer CoreText shaping with fonts that depend on AAT
--- a/gfx/thebes/gfxMacPlatformFontList.h +++ b/gfx/thebes/gfxMacPlatformFontList.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef gfxMacPlatformFontList_H_ #define gfxMacPlatformFontList_H_ +#include "mozilla/MemoryReporting.h" #include "nsDataHashtable.h" #include "nsRefPtrHashtable.h" #include "gfxPlatformFontList.h" #include "gfxPlatform.h" #include "gfxPlatformMac.h" #include <Carbon/Carbon.h> @@ -39,17 +40,17 @@ public: } virtual CGFontRef GetFontRef(); // override gfxFontEntry table access function to bypass table cache, // use CGFontRef API to get direct access to system font data virtual hb_blob_t *GetFontTable(uint32_t aTag) MOZ_OVERRIDE; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; nsresult ReadCMAP(); bool RequiresAATLayout() const { return mRequiresAAT; } bool IsCFF();
--- a/gfx/thebes/gfxMacPlatformFontList.mm +++ b/gfx/thebes/gfxMacPlatformFontList.mm @@ -58,16 +58,17 @@ #include "nsServiceManagerUtils.h" #include "nsTArray.h" #include "nsDirectoryServiceUtils.h" #include "nsDirectoryServiceDefs.h" #include "nsISimpleEnumerator.h" #include "nsCharTraits.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" #include "mozilla/Telemetry.h" #include <unistd.h> #include <time.h> using namespace mozilla; @@ -418,17 +419,17 @@ MacOSFontEntry::HasFontTable(uint32_t aT return false; } ::CFRelease(tableData); return true; } void -MacOSFontEntry::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +MacOSFontEntry::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); } /* gfxMacFontFamily */ #pragma mark-
--- a/gfx/thebes/gfxPlatformFontList.cpp +++ b/gfx/thebes/gfxPlatformFontList.cpp @@ -11,16 +11,17 @@ #include "gfxPlatformFontList.h" #include "nsUnicharUtils.h" #include "nsUnicodeRange.h" #include "nsUnicodeProperties.h" #include "mozilla/Attributes.h" #include "mozilla/Likely.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" #include "mozilla/Telemetry.h" #include "mozilla/TimeStamp.h" using namespace mozilla; #ifdef PR_LOGGING @@ -759,17 +760,17 @@ gfxPlatformFontList::GetPrefsAndStartLoa StartLoader(delay, interval); } // Support for memory reporting static size_t SizeOfFamilyEntryExcludingThis(const nsAString& aKey, const nsRefPtr<gfxFontFamily>& aFamily, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { FontListSizes *sizes = static_cast<FontListSizes*>(aUserArg); aFamily->SizeOfExcludingThis(aMallocSizeOf, sizes); sizes->mFontListSize += aKey.SizeOfExcludingThisIfUnshared(aMallocSizeOf); // we return zero here because the measurements have been added directly @@ -777,74 +778,74 @@ SizeOfFamilyEntryExcludingThis(const nsA return 0; } // this is also used by subclasses that hold additional hashes of family names /*static*/ size_t gfxPlatformFontList::SizeOfFamilyNameEntryExcludingThis (const nsAString& aKey, const nsRefPtr<gfxFontFamily>& aFamily, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { // we don't count the size of the family here, because this is an *extra* // reference to a family that will have already been counted in the main list return aKey.SizeOfExcludingThisIfUnshared(aMallocSizeOf); } static size_t SizeOfFontNameEntryExcludingThis(const nsAString& aKey, const nsRefPtr<gfxFontEntry>& aFont, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { // the font itself is counted by its owning family; here we only care about // the name stored in the hashtable key return aKey.SizeOfExcludingThisIfUnshared(aMallocSizeOf); } static size_t SizeOfPrefFontEntryExcludingThis (const uint32_t& aKey, const nsTArray<nsRefPtr<gfxFontFamily> >& aList, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { // again, we only care about the size of the array itself; we don't follow // the refPtrs stored in it, because they point to entries already owned // and accounted-for by the main font list return aList.SizeOfExcludingThis(aMallocSizeOf); } static size_t SizeOfStringEntryExcludingThis(nsStringHashKey* aHashEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { return aHashEntry->GetKey().SizeOfExcludingThisIfUnshared(aMallocSizeOf); } static size_t SizeOfSharedCmapExcludingThis(CharMapHashKey* aHashEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { FontListSizes *sizes = static_cast<FontListSizes*>(aUserArg); uint32_t size = aHashEntry->GetKey()->SizeOfIncludingThis(aMallocSizeOf); sizes->mCharMapsSize += size; // we return zero here because the measurements have been added directly // to the relevant fields of the FontListSizes record return 0; } void -gfxPlatformFontList::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, - FontListSizes* aSizes) const +gfxPlatformFontList::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, + FontListSizes* aSizes) const { aSizes->mFontListSize += mFontFamilies.SizeOfExcludingThis(SizeOfFamilyEntryExcludingThis, aMallocSizeOf, aSizes); aSizes->mFontListSize += mOtherFamilyNames.SizeOfExcludingThis(SizeOfFamilyNameEntryExcludingThis, aMallocSizeOf); @@ -872,14 +873,14 @@ gfxPlatformFontList::SizeOfExcludingThis aMallocSizeOf); aSizes->mFontListSize += mSharedCmaps.SizeOfExcludingThis(SizeOfSharedCmapExcludingThis, aMallocSizeOf, aSizes); } void -gfxPlatformFontList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, - FontListSizes* aSizes) const +gfxPlatformFontList::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, + FontListSizes* aSizes) const { aSizes->mFontListSize += aMallocSizeOf(this); SizeOfExcludingThis(aMallocSizeOf, aSizes); }
--- a/gfx/thebes/gfxPlatformFontList.h +++ b/gfx/thebes/gfxPlatformFontList.h @@ -11,16 +11,17 @@ #include "nsTHashtable.h" #include "gfxFontUtils.h" #include "gfxFont.h" #include "gfxPlatform.h" #include "nsIMemoryReporter.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" class CharMapHashKey : public PLDHashEntryHdr { public: typedef gfxCharacterMap* KeyType; typedef const gfxCharacterMap* KeyTypePointer; CharMapHashKey(const gfxCharacterMap *aCharMap) : @@ -156,19 +157,19 @@ public: virtual gfxFontEntry* MakePlatformFont(const gfxProxyFontEntry *aProxyEntry, const uint8_t *aFontData, uint32_t aLength) = 0; // get the standard family name on the platform for a given font name // (platforms may override, eg Mac) virtual bool GetStandardFamilyName(const nsAString& aFontName, nsAString& aFamilyName); - virtual void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, FontListSizes* aSizes) const; // search for existing cmap that matches the input // return the input if no match is found gfxCharacterMap* FindCharMap(gfxCharacterMap *aCmap); // add a cmap to the shared cmap set gfxCharacterMap* AddCmap(const gfxCharacterMap *aCharMap); @@ -247,17 +248,17 @@ protected: // read the loader initialization prefs, and start it void GetPrefsAndStartLoader(); // used by memory reporter to accumulate sizes of family names in the hash static size_t SizeOfFamilyNameEntryExcludingThis(const nsAString& aKey, const nsRefPtr<gfxFontFamily>& aFamily, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* aUserArg); // canonical family name ==> family entry (unique, one name per family entry) nsRefPtrHashtable<nsStringHashKey, gfxFontFamily> mFontFamilies; // other family name ==> family entry (not unique, can have multiple names per // family entry, only names *other* than the canonical names are stored here) nsRefPtrHashtable<nsStringHashKey, gfxFontFamily> mOtherFamilyNames;
--- a/image/src/FrameBlender.cpp +++ b/image/src/FrameBlender.cpp @@ -1,15 +1,16 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "FrameBlender.h" +#include "mozilla/MemoryReporting.h" #include "RasterImage.h" #include "imgFrame.h" #define PIXMAN_DONT_DEFINE_STDINT #include "pixman.h" using namespace mozilla; using namespace mozilla::image; @@ -568,17 +569,17 @@ FrameBlender::Discard() // Delete all the decoded frames, then clear the array. for (uint32_t i = 0; i < mFrames.Length(); ++i) delete mFrames[i]; mFrames.Clear(); } size_t FrameBlender::SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation aLocation, - nsMallocSizeOfFun aMallocSizeOf) const + MallocSizeOf aMallocSizeOf) const { size_t n = 0; for (uint32_t i = 0; i < mFrames.Length(); ++i) { imgFrame* frame = mFrames.SafeElementAt(i, nullptr); NS_ABORT_IF_FALSE(frame, "Null frame in frame array!"); n += frame->SizeOfExcludingThisWithComputedFallbackIfHeap(aLocation, aMallocSizeOf); }
--- a/image/src/FrameBlender.h +++ b/image/src/FrameBlender.h @@ -3,16 +3,17 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_imagelib_FrameBlender_h_ #define mozilla_imagelib_FrameBlender_h_ #include "nsTArray.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "gfxASurface.h" class imgFrame; namespace mozilla { namespace image { @@ -52,17 +53,17 @@ public: /* The total number of frames in this image. */ uint32_t GetNumFrames() const; void Discard(); void SetSize(nsIntSize aSize) { mSize = aSize; } size_t SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation aLocation, - nsMallocSizeOfFun aMallocSizeOf) const; + mozilla::MallocSizeOf aMallocSizeOf) const; void ResetAnimation(); // "Blend" method indicates how the current image is combined with the // previous image. enum FrameBlendMethod { // All color components of the frame, including alpha, overwrite the current // contents of the frame's output buffer region
--- a/image/src/Image.h +++ b/image/src/Image.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef MOZILLA_IMAGELIB_IMAGE_H_ #define MOZILLA_IMAGELIB_IMAGE_H_ +#include "mozilla/MemoryReporting.h" #include "imgIContainer.h" #include "imgStatusTracker.h" #include "nsIURI.h" #include "nsIRequest.h" #include "nsIInputStream.h" namespace mozilla { namespace image { @@ -72,18 +73,18 @@ public: * The size, in bytes, occupied by the significant data portions of the image. * This includes both compressed source data and decoded frames. */ virtual uint32_t SizeOfData() = 0; /** * The components that make up SizeOfData(). */ - virtual size_t HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const = 0; - virtual size_t HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const = 0; + virtual size_t HeapSizeOfSourceWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const = 0; + virtual size_t HeapSizeOfDecodedWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const = 0; virtual size_t NonHeapSizeOfDecoded() const = 0; virtual size_t OutOfProcessSizeOfDecoded() const = 0; virtual void IncrementAnimationConsumers() = 0; virtual void DecrementAnimationConsumers() = 0; #ifdef DEBUG virtual uint32_t GetAnimationConsumers() = 0; #endif
--- a/image/src/ImageWrapper.cpp +++ b/image/src/ImageWrapper.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "ImageWrapper.h" using mozilla::layers::LayerManager; using mozilla::layers::ImageContainer; namespace mozilla { namespace image { @@ -33,23 +34,23 @@ ImageWrapper::FrameRect(uint32_t aWhichF uint32_t ImageWrapper::SizeOfData() { return mInnerImage->SizeOfData(); } size_t -ImageWrapper::HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const +ImageWrapper::HeapSizeOfSourceWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const { return mInnerImage->HeapSizeOfSourceWithComputedFallback(aMallocSizeOf); } size_t -ImageWrapper::HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const +ImageWrapper::HeapSizeOfDecodedWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const { return mInnerImage->HeapSizeOfDecodedWithComputedFallback(aMallocSizeOf); } size_t ImageWrapper::NonHeapSizeOfDecoded() const { return mInnerImage->NonHeapSizeOfDecoded();
--- a/image/src/ImageWrapper.h +++ b/image/src/ImageWrapper.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef MOZILLA_IMAGELIB_IMAGEWRAPPER_H_ #define MOZILLA_IMAGELIB_IMAGEWRAPPER_H_ +#include "mozilla/MemoryReporting.h" #include "Image.h" namespace mozilla { namespace image { /** * Abstract superclass for Images that wrap other Images. */ @@ -24,18 +25,18 @@ public: // Inherited methods from Image. virtual nsresult Init(const char* aMimeType, uint32_t aFlags) MOZ_OVERRIDE; virtual imgStatusTracker& GetStatusTracker() MOZ_OVERRIDE; virtual nsIntRect FrameRect(uint32_t aWhichFrame) MOZ_OVERRIDE; virtual uint32_t SizeOfData() MOZ_OVERRIDE; - virtual size_t HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; - virtual size_t HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t HeapSizeOfSourceWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t HeapSizeOfDecodedWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; virtual size_t NonHeapSizeOfDecoded() const MOZ_OVERRIDE; virtual size_t OutOfProcessSizeOfDecoded() const MOZ_OVERRIDE; virtual void IncrementAnimationConsumers() MOZ_OVERRIDE; virtual void DecrementAnimationConsumers() MOZ_OVERRIDE; #ifdef DEBUG virtual uint32_t GetAnimationConsumers() MOZ_OVERRIDE; #endif
--- a/image/src/RasterImage.cpp +++ b/image/src/RasterImage.cpp @@ -33,16 +33,17 @@ #include "nsIconDecoder.h" #ifdef MOZ_WBMP #include "nsWBMPDecoder.h" #endif #include "gfxContext.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Services.h" #include "mozilla/Preferences.h" #include "mozilla/StandardInteger.h" #include "mozilla/Telemetry.h" #include "mozilla/TimeStamp.h" #include "mozilla/ClearOnShutdown.h" #include "mozilla/gfx/Scale.h" @@ -1177,44 +1178,44 @@ RasterImage::UpdateImageContainer() if (!image) { return; } mImageContainer->SetCurrentImage(image); SetInUpdateImageContainer(false); } size_t -RasterImage::HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const +RasterImage::HeapSizeOfSourceWithComputedFallback(MallocSizeOf aMallocSizeOf) const { // n == 0 is possible for two reasons. // - This is a zero-length image. // - We're on a platform where moz_malloc_size_of always returns 0. // In either case the fallback works appropriately. size_t n = mSourceData.SizeOfExcludingThis(aMallocSizeOf); if (n == 0) { n = mSourceData.Length(); } return n; } size_t RasterImage::SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation aLocation, - nsMallocSizeOfFun aMallocSizeOf) const + MallocSizeOf aMallocSizeOf) const { size_t n = mFrameBlender.SizeOfDecodedWithComputedFallbackIfHeap(aLocation, aMallocSizeOf); if (mScaleResult.status == SCALE_DONE) { n += mScaleResult.frame->SizeOfExcludingThisWithComputedFallbackIfHeap(aLocation, aMallocSizeOf); } return n; } size_t -RasterImage::HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const +RasterImage::HeapSizeOfDecodedWithComputedFallback(MallocSizeOf aMallocSizeOf) const { return SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MEMORY_IN_PROCESS_HEAP, aMallocSizeOf); } size_t RasterImage::NonHeapSizeOfDecoded() const {
--- a/image/src/RasterImage.h +++ b/image/src/RasterImage.h @@ -24,16 +24,17 @@ #include "nsIProperties.h" #include "nsITimer.h" #include "nsIRequest.h" #include "nsTArray.h" #include "imgFrame.h" #include "nsThreadUtils.h" #include "DiscardTracker.h" #include "nsISupportsImpl.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "mozilla/Telemetry.h" #include "mozilla/LinkedList.h" #include "mozilla/StaticPtr.h" #include "mozilla/WeakPtr.h" #include "mozilla/Mutex.h" #include "gfx2DGlue.h" #ifdef DEBUG @@ -171,18 +172,18 @@ public: /* The index of the current frame that would be drawn if the image was to be * drawn now. */ uint32_t GetCurrentFrameIndex(); /* The total number of frames in this image. */ uint32_t GetNumFrames() const; - virtual size_t HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t HeapSizeOfSourceWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t HeapSizeOfDecodedWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const; virtual size_t NonHeapSizeOfDecoded() const; virtual size_t OutOfProcessSizeOfDecoded() const; /* Triggers discarding. */ void Discard(bool force = false); void ForceDiscard() { Discard(/* force = */ true); } /* Callbacks for decoders */ @@ -584,17 +585,17 @@ private: imgFrame* GetImgFrameNoDecode(uint32_t framenum); imgFrame* GetImgFrame(uint32_t framenum); imgFrame* GetDrawableImgFrame(uint32_t framenum); imgFrame* GetCurrentImgFrame(); uint32_t GetCurrentImgFrameIndex() const; mozilla::TimeStamp GetCurrentImgFrameEndTime() const; size_t SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation aLocation, - nsMallocSizeOfFun aMallocSizeOf) const; + mozilla::MallocSizeOf aMallocSizeOf) const; inline void EnsureAnimExists() { if (!mAnim) { // Create the animation context mAnim = new Anim();
--- a/image/src/VectorImage.cpp +++ b/image/src/VectorImage.cpp @@ -8,16 +8,17 @@ #include <algorithm> #include "gfxContext.h" #include "gfxDrawable.h" #include "gfxPlatform.h" #include "gfxUtils.h" #include "imgDecoderObserver.h" #include "mozilla/AutoRestore.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/SVGSVGElement.h" #include "nsComponentManagerUtils.h" #include "nsIObserverService.h" #include "nsIPresShell.h" #include "nsIStreamListener.h" #include "nsMimeTypes.h" #include "nsPresContext.h" #include "nsRect.h" @@ -336,26 +337,26 @@ VectorImage::Init(const char* aMimeType, nsIntRect VectorImage::FrameRect(uint32_t aWhichFrame) { return nsIntRect::GetMaxSizedIntRect(); } size_t -VectorImage::HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const +VectorImage::HeapSizeOfSourceWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const { // We're not storing the source data -- we just feed that directly to // our helper SVG document as we receive it, for it to parse. // So 0 is an appropriate return value here. return 0; } size_t -VectorImage::HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const +VectorImage::HeapSizeOfDecodedWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const { // XXXdholbert TODO: return num bytes used by helper SVG doc. (bug 590790) return 0; } size_t VectorImage::NonHeapSizeOfDecoded() const {
--- a/image/src/VectorImage.h +++ b/image/src/VectorImage.h @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_imagelib_VectorImage_h_ #define mozilla_imagelib_VectorImage_h_ #include "Image.h" #include "nsIStreamListener.h" #include "nsIRequest.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "mozilla/WeakPtr.h" class imgDecoderObserver; namespace mozilla { namespace layers { class LayerManager; @@ -38,18 +39,18 @@ public: // (no public constructor - use ImageFactory) virtual ~VectorImage(); // Methods inherited from Image nsresult Init(const char* aMimeType, uint32_t aFlags); virtual nsIntRect FrameRect(uint32_t aWhichFrame) MOZ_OVERRIDE; - virtual size_t HeapSizeOfSourceWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t HeapSizeOfDecodedWithComputedFallback(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t HeapSizeOfSourceWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t HeapSizeOfDecodedWithComputedFallback(mozilla::MallocSizeOf aMallocSizeOf) const; virtual size_t NonHeapSizeOfDecoded() const; virtual size_t OutOfProcessSizeOfDecoded() const; virtual nsresult OnImageDataAvailable(nsIRequest* aRequest, nsISupports* aContext, nsIInputStream* aInStr, uint64_t aSourceOffset, uint32_t aCount) MOZ_OVERRIDE;
--- a/image/src/imgFrame.cpp +++ b/image/src/imgFrame.cpp @@ -14,16 +14,17 @@ #include "gfxPlatform.h" #include "gfxUtils.h" static bool gDisableOptimize = false; #include "cairo.h" #include "GeckoProfiler.h" #include "mozilla/Likely.h" +#include "mozilla/MemoryReporting.h" #if defined(XP_WIN) #include "gfxWindowsPlatform.h" /* Whether to use the windows surface; only for desktop win32 */ #define USE_WIN_SURFACE 1 @@ -796,17 +797,17 @@ void imgFrame::SetCompositingFailed(bool { mCompositingFailed = val; } // If |aLocation| indicates this is heap memory, we try to measure things with // |aMallocSizeOf|. If that fails (because the platform doesn't support it) or // it's non-heap memory, we fall back to computing the size analytically. size_t -imgFrame::SizeOfExcludingThisWithComputedFallbackIfHeap(gfxASurface::MemoryLocation aLocation, nsMallocSizeOfFun aMallocSizeOf) const +imgFrame::SizeOfExcludingThisWithComputedFallbackIfHeap(gfxASurface::MemoryLocation aLocation, mozilla::MallocSizeOf aMallocSizeOf) const { // aMallocSizeOf is only used if aLocation==MEMORY_IN_PROCESS_HEAP. It // should be NULL otherwise. NS_ABORT_IF_FALSE( (aLocation == gfxASurface::MEMORY_IN_PROCESS_HEAP && aMallocSizeOf) || (aLocation != gfxASurface::MEMORY_IN_PROCESS_HEAP && !aMallocSizeOf), "mismatch between aLocation and aMallocSizeOf");
--- a/image/src/imgFrame.h +++ b/image/src/imgFrame.h @@ -2,16 +2,17 @@ * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef imgFrame_h #define imgFrame_h +#include "mozilla/MemoryReporting.h" #include "nsRect.h" #include "nsPoint.h" #include "nsSize.h" #include "gfxTypes.h" #include "nsID.h" #include "gfxContext.h" #include "gfxPattern.h" #include "gfxDrawable.h" @@ -99,17 +100,17 @@ public: if (mQuartzSurface) return mQuartzSurface; #endif return mImageSurface; } size_t SizeOfExcludingThisWithComputedFallbackIfHeap( gfxASurface::MemoryLocation aLocation, - nsMallocSizeOfFun aMallocSizeOf) const; + mozilla::MallocSizeOf aMallocSizeOf) const; uint8_t GetPaletteDepth() const { return mPaletteDepth; } uint32_t PaletteDataLength() const { return ((1 << mPaletteDepth) * sizeof(uint32_t)); } private: // methods
--- a/js/xpconnect/src/XPCJSRuntime.cpp +++ b/js/xpconnect/src/XPCJSRuntime.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* Per JSRuntime object */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "xpcprivate.h" #include "xpcpublic.h" #include "XPCJSMemoryReporter.h" #include "WrapperFactory.h" #include "dom_quickstubs.h" @@ -1111,17 +1112,17 @@ XPCJSRuntime::CTypesActivityCallback(JSC if (!Get()->GetJSContextStack()->Push(cx)) MOZ_CRASH(); } else if (type == js::CTYPES_CALLBACK_END) { Get()->GetJSContextStack()->Pop(); } } size_t -XPCJSRuntime::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +XPCJSRuntime::SizeOfIncludingThis(MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); n += mWrappedJSMap->SizeOfIncludingThis(mallocSizeOf); n += mIID2NativeInterfaceMap->SizeOfIncludingThis(mallocSizeOf); n += mClassInfo2NativeSetMap->ShallowSizeOfIncludingThis(mallocSizeOf); n += mNativeSetMap->SizeOfIncludingThis(mallocSizeOf);
--- a/js/xpconnect/src/XPCMaps.cpp +++ b/js/xpconnect/src/XPCMaps.cpp @@ -134,17 +134,17 @@ Native2WrappedNativeMap::Native2WrappedN Native2WrappedNativeMap::~Native2WrappedNativeMap() { if (mTable) PL_DHashTableDestroy(mTable); } size_t -Native2WrappedNativeMap::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +Native2WrappedNativeMap::SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); n += mTable ? PL_DHashTableSizeOfIncludingThis(mTable, SizeOfEntryExcludingThis, mallocSizeOf) : 0; return n; } /* static */ size_t @@ -223,17 +223,17 @@ IID2NativeInterfaceMap::IID2NativeInterf IID2NativeInterfaceMap::~IID2NativeInterfaceMap() { if (mTable) PL_DHashTableDestroy(mTable); } size_t -IID2NativeInterfaceMap::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +IID2NativeInterfaceMap::SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); n += mTable ? PL_DHashTableSizeOfIncludingThis(mTable, SizeOfEntryExcludingThis, mallocSizeOf) : 0; return n; } /* static */ size_t @@ -266,17 +266,17 @@ ClassInfo2NativeSetMap::ClassInfo2Native ClassInfo2NativeSetMap::~ClassInfo2NativeSetMap() { if (mTable) PL_DHashTableDestroy(mTable); } size_t -ClassInfo2NativeSetMap::ShallowSizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +ClassInfo2NativeSetMap::ShallowSizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); // The second arg is nullptr because this is a "shallow" measurement of the map. n += mTable ? PL_DHashTableSizeOfIncludingThis(mTable, nullptr, mallocSizeOf) : 0; return n; } @@ -306,17 +306,17 @@ ClassInfo2WrappedNativeProtoMap::ClassIn ClassInfo2WrappedNativeProtoMap::~ClassInfo2WrappedNativeProtoMap() { if (mTable) PL_DHashTableDestroy(mTable); } size_t -ClassInfo2WrappedNativeProtoMap::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +ClassInfo2WrappedNativeProtoMap::SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); n += mTable ? PL_DHashTableSizeOfIncludingThis(mTable, SizeOfEntryExcludingThis, mallocSizeOf) : 0; return n; } /* static */ size_t @@ -430,17 +430,17 @@ NativeSetMap::NativeSetMap(int size) NativeSetMap::~NativeSetMap() { if (mTable) PL_DHashTableDestroy(mTable); } size_t -NativeSetMap::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +NativeSetMap::SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); n += mTable ? PL_DHashTableSizeOfIncludingThis(mTable, SizeOfEntryExcludingThis, mallocSizeOf) : 0; return n; } /* static */ size_t
--- a/js/xpconnect/src/XPCMaps.h +++ b/js/xpconnect/src/XPCMaps.h @@ -65,17 +65,17 @@ public: for (Map::Range r = mTable.all(); !r.empty(); r.popFront()) r.front().value->DebugDump(depth); } void FindDyingJSObjects(nsTArray<nsXPCWrappedJS*>* dying); void ShutdownMarker(JSRuntime* rt); - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) { + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { size_t n = mallocSizeOf(this); n += mTable.sizeOfExcludingThis(mallocSizeOf); return n; } private: JSObject2WrappedJSMap() {} @@ -133,17 +133,17 @@ public: #endif PL_DHashTableOperate(mTable, wrapper->GetIdentityObject(), PL_DHASH_REMOVE); } inline uint32_t Count() {return mTable->entryCount;} inline uint32_t Enumerate(PLDHashEnumerator f, void *arg) {return PL_DHashTableEnumerate(mTable, f, arg);} - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); ~Native2WrappedNativeMap(); private: Native2WrappedNativeMap(); // no implementation Native2WrappedNativeMap(int size); static size_t SizeOfEntryExcludingThis(PLDHashEntryHdr *hdr, mozilla::MallocSizeOf mallocSizeOf, void *); @@ -252,17 +252,17 @@ public: NS_PRECONDITION(iface,"bad param"); PL_DHashTableOperate(mTable, iface->GetIID(), PL_DHASH_REMOVE); } inline uint32_t Count() {return mTable->entryCount;} inline uint32_t Enumerate(PLDHashEnumerator f, void *arg) {return PL_DHashTableEnumerate(mTable, f, arg);} - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); ~IID2NativeInterfaceMap(); private: IID2NativeInterfaceMap(); // no implementation IID2NativeInterfaceMap(int size); static size_t SizeOfEntryExcludingThis(PLDHashEntryHdr *hdr, mozilla::MallocSizeOf mallocSizeOf, void *); @@ -315,17 +315,17 @@ public: inline uint32_t Count() {return mTable->entryCount;} inline uint32_t Enumerate(PLDHashEnumerator f, void *arg) {return PL_DHashTableEnumerate(mTable, f, arg);} // ClassInfo2NativeSetMap holds pointers to *some* XPCNativeSets. // So we don't want to count those XPCNativeSets, because they are better // counted elsewhere (i.e. in XPCJSRuntime::mNativeSetMap, which holds // pointers to *all* XPCNativeSets). Hence the "Shallow". - size_t ShallowSizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t ShallowSizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); ~ClassInfo2NativeSetMap(); private: ClassInfo2NativeSetMap(); // no implementation ClassInfo2NativeSetMap(int size); private: PLDHashTable *mTable; }; @@ -371,17 +371,17 @@ public: NS_PRECONDITION(info,"bad param"); PL_DHashTableOperate(mTable, info, PL_DHASH_REMOVE); } inline uint32_t Count() {return mTable->entryCount;} inline uint32_t Enumerate(PLDHashEnumerator f, void *arg) {return PL_DHashTableEnumerate(mTable, f, arg);} - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); ~ClassInfo2WrappedNativeProtoMap(); private: ClassInfo2WrappedNativeProtoMap(); // no implementation ClassInfo2WrappedNativeProtoMap(int size); static size_t SizeOfEntryExcludingThis(PLDHashEntryHdr *hdr, mozilla::MallocSizeOf mallocSizeOf, void *); @@ -444,17 +444,17 @@ public: XPCNativeSetKey key(set, nullptr, 0); PL_DHashTableOperate(mTable, &key, PL_DHASH_REMOVE); } inline uint32_t Count() {return mTable->entryCount;} inline uint32_t Enumerate(PLDHashEnumerator f, void *arg) {return PL_DHashTableEnumerate(mTable, f, arg);} - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); ~NativeSetMap(); private: NativeSetMap(); // no implementation NativeSetMap(int size); static size_t SizeOfEntryExcludingThis(PLDHashEntryHdr *hdr, mozilla::MallocSizeOf mallocSizeOf, void *);
--- a/js/xpconnect/src/XPCWrappedNativeInfo.cpp +++ b/js/xpconnect/src/XPCWrappedNativeInfo.cpp @@ -4,16 +4,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* Manage the shared info about interfaces for use by wrappedNatives. */ #include "xpcprivate.h" #include "nsCxPusher.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/XPTInterfaceInfoManager.h" using namespace JS; using namespace mozilla; /***************************************************************************/ // XPCNativeMember @@ -383,17 +384,17 @@ XPCNativeInterface::NewInstance(nsIInter void XPCNativeInterface::DestroyInstance(XPCNativeInterface* inst) { inst->~XPCNativeInterface(); delete [] (char*) inst; } size_t -XPCNativeInterface::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +XPCNativeInterface::SizeOfIncludingThis(MallocSizeOf mallocSizeOf) { return mallocSizeOf(this); } void XPCNativeInterface::DebugDump(int16_t depth) { #ifdef DEBUG @@ -793,17 +794,17 @@ XPCNativeSet::NewInstanceMutate(XPCNativ void XPCNativeSet::DestroyInstance(XPCNativeSet* inst) { inst->~XPCNativeSet(); delete [] (char*) inst; } size_t -XPCNativeSet::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +XPCNativeSet::SizeOfIncludingThis(MallocSizeOf mallocSizeOf) { return mallocSizeOf(this); } void XPCNativeSet::DebugDump(int16_t depth) { #ifdef DEBUG
--- a/js/xpconnect/src/XPCWrappedNativeScope.cpp +++ b/js/xpconnect/src/XPCWrappedNativeScope.cpp @@ -6,16 +6,17 @@ /* Class used to manage the wrapped native objects within a JS scope. */ #include "xpcprivate.h" #include "XPCWrapper.h" #include "jsproxy.h" #include "nsContentUtils.h" #include "nsCycleCollectionNoteRootCallback.h" #include "nsPrincipal.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" #include "mozilla/dom/BindingUtils.h" using namespace mozilla; using namespace xpc; /***************************************************************************/ @@ -770,30 +771,30 @@ XPCWrappedNativeScope::DebugDump(int16_t mMainThreadWrappedNativeProtoMap->Enumerate(WrappedNativeProtoMapDumpEnumerator, &depth); XPC_LOG_OUTDENT(); } XPC_LOG_OUTDENT(); #endif } size_t -XPCWrappedNativeScope::SizeOfAllScopesIncludingThis(nsMallocSizeOfFun mallocSizeOf) +XPCWrappedNativeScope::SizeOfAllScopesIncludingThis(MallocSizeOf mallocSizeOf) { XPCJSRuntime *rt = nsXPConnect::GetRuntimeInstance(); XPCAutoLock lock(rt->GetMapLock()); size_t n = 0; for (XPCWrappedNativeScope *cur = gScopes; cur; cur = cur->mNext) { n += cur->SizeOfIncludingThis(mallocSizeOf); } return n; } size_t -XPCWrappedNativeScope::SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) +XPCWrappedNativeScope::SizeOfIncludingThis(MallocSizeOf mallocSizeOf) { size_t n = 0; n += mallocSizeOf(this); n += mWrappedNativeMap->SizeOfIncludingThis(mallocSizeOf); n += mWrappedNativeProtoMap->SizeOfIncludingThis(mallocSizeOf); n += mMainThreadWrappedNativeProtoMap->SizeOfIncludingThis(mallocSizeOf); // There are other XPCWrappedNativeScope members that could be measured;
--- a/js/xpconnect/src/xpcprivate.h +++ b/js/xpconnect/src/xpcprivate.h @@ -72,16 +72,17 @@ /* All the XPConnect private declarations - only include locally. */ #ifndef xpcprivate_h___ #define xpcprivate_h___ #include "mozilla/Assertions.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/StandardInteger.h" #include "mozilla/Util.h" #include <string.h> #include <stdlib.h> #include <stdarg.h> #include <math.h> #include "xpcpublic.h" @@ -832,17 +833,17 @@ public: void AddGCCallback(JSGCCallback cb); void RemoveGCCallback(JSGCCallback cb); static void ActivityCallback(void *arg, JSBool active); static void CTypesActivityCallback(JSContext *cx, js::CTypesActivityType type); - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); AutoMarkingPtr** GetAutoRootsAdr() {return &mAutoRoots;} JSObject* GetJunkScope(); void DeleteJunkScope(); private: XPCJSRuntime(); // no implementation XPCJSRuntime(nsXPConnect* aXPConnect); @@ -1403,20 +1404,20 @@ public: static void DebugDumpAllScopes(int16_t depth); void DebugDump(int16_t depth); static size_t - SizeOfAllScopesIncludingThis(nsMallocSizeOfFun mallocSizeOf); + SizeOfAllScopesIncludingThis(mozilla::MallocSizeOf mallocSizeOf); size_t - SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); JSBool IsValid() const {return mRuntime != nullptr;} static JSBool IsDyingScope(XPCWrappedNativeScope *scope); static void InitStatics() { gScopes = nullptr; gDyingScopes = nullptr; } @@ -1630,17 +1631,17 @@ class XPCNativeInterface } // NOP. This is just here to make the AutoMarkingPtr code compile. inline void TraceJS(JSTracer* trc) {} inline void AutoTrace(JSTracer* trc) {} static void DestroyInstance(XPCNativeInterface* inst); - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); protected: static XPCNativeInterface* NewInstance(nsIInterfaceInfo* aInfo); XPCNativeInterface(); // not implemented XPCNativeInterface(nsIInterfaceInfo* aInfo, jsid aName) : mInfo(aInfo), mName(aName), mMemberCount(0), mMarked(0) { @@ -1798,17 +1799,17 @@ class XPCNativeSet #ifdef DEBUG inline void ASSERT_NotMarked(); #endif void DebugDump(int16_t depth); static void DestroyInstance(XPCNativeSet* inst); - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); protected: static XPCNativeSet* NewInstance(XPCNativeInterface** array, uint16_t count); static XPCNativeSet* NewInstanceMutate(XPCNativeSet* otherSet, XPCNativeInterface* newInterface, uint16_t position); XPCNativeSet()
--- a/layout/base/FramePropertyTable.cpp +++ b/layout/base/FramePropertyTable.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "FramePropertyTable.h" #include "prlog.h" namespace mozilla { void FramePropertyTable::Set(nsIFrame* aFrame, const FramePropertyDescriptor* aProperty, void* aValue) @@ -223,22 +224,22 @@ FramePropertyTable::DeleteAll() { mLastFrame = nullptr; mLastEntry = nullptr; mEntries.EnumerateEntries(DeleteEnumerator, nullptr); } size_t -FramePropertyTable::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +FramePropertyTable::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return mEntries.SizeOfExcludingThis(SizeOfPropertyTableEntryExcludingThis, aMallocSizeOf); } /* static */ size_t FramePropertyTable::SizeOfPropertyTableEntryExcludingThis(Entry* aEntry, - nsMallocSizeOfFun aMallocSizeOf, void *) + mozilla::MallocSizeOf aMallocSizeOf, void *) { return aEntry->mProp.SizeOfExcludingThis(aMallocSizeOf); } }
--- a/layout/base/FramePropertyTable.h +++ b/layout/base/FramePropertyTable.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef FRAMEPROPERTYTABLE_H_ #define FRAMEPROPERTYTABLE_H_ +#include "mozilla/MemoryReporting.h" #include "nsTArray.h" #include "nsTHashtable.h" #include "nsHashKeys.h" class nsIFrame; namespace mozilla { @@ -118,17 +119,17 @@ public: * hashtable lookup (using the frame as the key). */ void DeleteAllFor(nsIFrame* aFrame); /** * Remove and destroy all property values for all frames. */ void DeleteAll(); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; protected: /** * Stores a property descriptor/value pair. It can also be used to * store an nsTArray of PropertyValues. */ struct PropertyValue { PropertyValue() : mProperty(nullptr), mValue(nullptr) {} @@ -145,17 +146,17 @@ protected: void DestroyValueFor(nsIFrame* aFrame) { if (mProperty->mDestructor) { mProperty->mDestructor(mValue); } else if (mProperty->mDestructorWithFrame) { mProperty->mDestructorWithFrame(aFrame, mValue); } } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) { + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) { size_t n = 0; // We don't need to measure mProperty because it always points to static // memory. As for mValue: if it's a single value we can't measure it, // because the type is opaque; if it's an array, we measure the array // storage, but we can't measure the individual values, again because // their types are opaque. if (IsArray()) { nsTArray<PropertyValue>* array = ToArray(); @@ -198,17 +199,17 @@ protected: PropertyValue mProp; }; static void DeleteAllForEntry(Entry* aEntry); static PLDHashOperator DeleteEnumerator(Entry* aEntry, void* aArg); static size_t SizeOfPropertyTableEntryExcludingThis(Entry* aEntry, - nsMallocSizeOfFun aMallocSizeOf, void *); + mozilla::MallocSizeOf aMallocSizeOf, void *); nsTHashtable<Entry> mEntries; nsIFrame* mLastFrame; Entry* mLastEntry; }; /** * This class encapsulates the properties of a frame.
--- a/layout/base/StackArena.cpp +++ b/layout/base/StackArena.cpp @@ -1,12 +1,13 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "StackArena.h" namespace mozilla { #define STACK_ARENA_MARK_INCREMENT 50 /* a bit under 4096, for malloc overhead */ #define STACK_ARENA_BLOCK_INCREMENT 4044 @@ -62,17 +63,17 @@ StackArena::~StackArena() { StackBlock* toDelete = mBlocks; mBlocks = mBlocks->mNext; delete toDelete; } } size_t -StackArena::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +StackArena::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; StackBlock *block = mBlocks; while (block) { n += aMallocSizeOf(block); block = block->mNext; } n += aMallocSizeOf(mMarks);
--- a/layout/base/StackArena.h +++ b/layout/base/StackArena.h @@ -1,13 +1,14 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/Assertions.h" +#include "mozilla/MemoryReporting.h" #include "nsAlgorithm.h" #include "nsDebug.h" namespace mozilla { struct StackBlock; struct StackMark; class AutoStackArena; @@ -23,17 +24,17 @@ private: nsresult Init() { return mBlocks ? NS_OK : NS_ERROR_OUT_OF_MEMORY; } // Memory management functions void* Allocate(size_t aSize); void Push(); void Pop(); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; // our current position in memory size_t mPos; // a list of memory block. Usually there is only one // but if we overrun our stack size we can get more memory. StackBlock* mBlocks;
--- a/layout/base/nsIPresShell.h +++ b/layout/base/nsIPresShell.h @@ -15,16 +15,17 @@ * 05/03/2000 IBM Corp. Observer related defines for reflow */ /* a presentation of a document, part 2 */ #ifndef nsIPresShell_h___ #define nsIPresShell_h___ +#include "mozilla/MemoryReporting.h" #include "nsTHashtable.h" #include "nsHashKeys.h" #include "nsISupports.h" #include "nsQueryFrame.h" #include "nsCoord.h" #include "nsColor.h" #include "nsEvent.h" #include "nsCompatibility.h" @@ -1278,17 +1279,17 @@ public: * Ensures that the refresh driver is running, and schedules a view * manager flush on the next tick. */ virtual void ScheduleViewManagerFlush() = 0; virtual void ClearMouseCaptureOnView(nsView* aView) = 0; virtual bool IsVisible() = 0; virtual void DispatchSynthMouseMove(nsGUIEvent *aEvent, bool aFlushOnHoverChange) = 0; - virtual void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + virtual void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, nsArenaMemoryStats *aArenaObjectsSize, size_t *aPresShellSize, size_t *aStyleSetsSize, size_t *aTextRunsSize, size_t *aPresContextSize) = 0; /** * Methods that retrieve the cached font inflation preferences.
--- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -1,15 +1,16 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 sw=2 et tw=78: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "base/basictypes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "nsLayoutUtils.h" #include "nsIFormControlFrame.h" #include "nsPresContext.h" #include "nsIContent.h" #include "nsIDOMHTMLDocument.h" #include "nsIDOMHTMLElement.h" @@ -4872,17 +4873,17 @@ nsLayoutUtils::GetFontFacesForText(nsIFr (curr = static_cast<nsTextFrame*>(curr->GetNextContinuation()))); return NS_OK; } /* static */ size_t nsLayoutUtils::SizeOfTextRunsForFrames(nsIFrame* aFrame, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, bool clear) { NS_PRECONDITION(aFrame, "NULL frame pointer"); size_t total = 0; if (aFrame->GetType() == nsGkAtoms::textFrame) { nsTextFrame* textFrame = static_cast<nsTextFrame*>(aFrame);
--- a/layout/base/nsLayoutUtils.h +++ b/layout/base/nsLayoutUtils.h @@ -15,16 +15,17 @@ class nsIDOMEvent; class nsRegion; class nsDisplayListBuilder; class nsDisplayItem; class nsFontMetrics; class nsClientRectList; class nsFontFaceList; class nsIImageLoadingContent; +#include "mozilla/MemoryReporting.h" #include "nsChangeHint.h" #include "nsStyleContext.h" #include "nsAutoPtr.h" #include "nsStyleSet.h" #include "nsIFrame.h" #include "nsThreadUtils.h" #include "nsIPresShell.h" #include "nsIPrincipal.h" @@ -1564,17 +1565,17 @@ public: * If |clear| is false, adds the storage used for each textRun to the * total, and sets the TEXT_RUN_MEMORY_ACCOUNTED flag to avoid double- * accounting. (Runs with this flag already set will be skipped.) * Expected usage pattern is therefore to call twice: * (void)SizeOfTextRunsForFrames(rootFrame, nullptr, true); * total = SizeOfTextRunsForFrames(rootFrame, mallocSizeOf, false); */ static size_t SizeOfTextRunsForFrames(nsIFrame* aFrame, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, bool clear); /** * Returns true if the content node has animations or transitions that can be * performed on the compositor. */ static bool HasAnimationsForCompositor(nsIContent* aContent, nsCSSProperty aProperty);
--- a/layout/base/nsPresArena.cpp +++ b/layout/base/nsPresArena.cpp @@ -14,16 +14,17 @@ #define ALIGN_SHIFT 3 #define PL_ARENA_CONST_ALIGN_MASK ((uintptr_t(1) << ALIGN_SHIFT) - 1) #include "plarena.h" // plarena.h needs to be included first to make it use the above // PL_ARENA_CONST_ALIGN_MASK in this file. #include "nsPresArena.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Poison.h" #include "nsCRT.h" #include "nsDebug.h" #include "nsArenaMemoryStats.h" #include "nsPrintfCString.h" // Size to use for PLArena block allocations. static const size_t ARENA_PAGE_SIZE = 8192; @@ -111,17 +112,17 @@ nsPresArena::Free(uint32_t aCode, void* mozWritePoison(aPtr, list->mEntrySize); MOZ_MAKE_MEM_NOACCESS(aPtr, list->mEntrySize); list->mEntries.AppendElement(aPtr); } /* static */ size_t nsPresArena::SizeOfFreeListEntryExcludingThis( - FreeList* aEntry, nsMallocSizeOfFun aMallocSizeOf, void*) + FreeList* aEntry, mozilla::MallocSizeOf aMallocSizeOf, void*) { return aEntry->mEntries.SizeOfExcludingThis(aMallocSizeOf); } struct EnumerateData { nsArenaMemoryStats* stats; size_t total; }; @@ -174,17 +175,17 @@ nsPresArena::FreeListEnumerator(FreeList *p += totalSize; data->total += totalSize; return PL_DHASH_NEXT; } void -nsPresArena::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, +nsPresArena::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, nsArenaMemoryStats* aArenaStats) { // We do a complicated dance here because we want to measure the // space taken up by the different kinds of objects in the arena, // but we don't have pointers to those objects. And even if we did, // we wouldn't be able to use aMallocSizeOf on them, since they were // allocated out of malloc'd chunks of memory. So we compute the // size of the arena as known by malloc and we add up the sizes of
--- a/layout/base/nsPresArena.h +++ b/layout/base/nsPresArena.h @@ -6,16 +6,17 @@ */ /* arena allocation for the frame tree and closely-related objects */ #ifndef nsPresArena_h___ #define nsPresArena_h___ #include "mozilla/MemoryChecking.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/StandardInteger.h" #include "nscore.h" #include "nsQueryFrame.h" #include "nsTArray.h" #include "nsTHashtable.h" #include "plarena.h" struct nsArenaMemoryStats; @@ -79,17 +80,17 @@ public: { Free(aID, aPtr); } /** * Fill aArenaStats with sizes of interesting objects allocated in * this arena and its mOther field with the size of everything else. */ - void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + void SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf, nsArenaMemoryStats* aArenaStats); private: NS_HIDDEN_(void*) Allocate(uint32_t aCode, size_t aSize); NS_HIDDEN_(void) Free(uint32_t aCode, void* aPtr); // All keys to this hash table fit in 32 bits (see below) so we do not // bother actually hashing them. @@ -120,16 +121,16 @@ private: enum { ALLOW_MEMMOVE = false }; }; #if defined(MOZ_HAVE_MEM_CHECKS) static PLDHashOperator UnpoisonFreeList(FreeList* aEntry, void*); #endif static PLDHashOperator FreeListEnumerator(FreeList* aEntry, void* aData); static size_t SizeOfFreeListEntryExcludingThis(FreeList* aEntry, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void*); nsTHashtable<FreeList> mFreeLists; PLArenaPool mPool; }; #endif
--- a/layout/base/nsPresContext.cpp +++ b/layout/base/nsPresContext.cpp @@ -54,16 +54,17 @@ #include "nsFontFaceLoader.h" #include "nsEventListenerManager.h" #include "nsStyleStructInlines.h" #include "nsIAppShell.h" #include "prenv.h" #include "nsObjectFrame.h" #include "nsTransitionManager.h" #include "nsAnimationManager.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nsIMessageManager.h" #include "FrameLayerBuilder.h" #include "nsDOMMediaQueryList.h" #include "nsSMILAnimationController.h" #include "mozilla/css/ImageLoader.h" #include "mozilla/dom/PBrowserChild.h" #include "mozilla/dom/TabChild.h" @@ -2519,17 +2520,17 @@ nsPresContext::GetPrimaryFrameFor(nsICon GetPresShell()->GetDocument() == aContent->GetCurrentDoc()) { return aContent->GetPrimaryFrame(); } return nullptr; } size_t -nsPresContext::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsPresContext::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return mPropertyTable.SizeOfExcludingThis(aMallocSizeOf); mLangGroupFontPrefs.SizeOfExcludingThis(aMallocSizeOf); // Measurement of other members may be added later if DMD finds it is // worthwhile. } @@ -2855,17 +2856,17 @@ nsRootPresContext::FlushWillPaintObserve nsTArray<nsCOMPtr<nsIRunnable> > observers; observers.SwapElements(mWillPaintObservers); for (uint32_t i = 0; i < observers.Length(); ++i) { observers[i]->Run(); } } size_t -nsRootPresContext::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsRootPresContext::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return nsPresContext::SizeOfExcludingThis(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mNotifyDidPaintTimer // - mRegisteredPlugins // - mWillPaintObservers
--- a/layout/base/nsPresContext.h +++ b/layout/base/nsPresContext.h @@ -26,16 +26,17 @@ #include "nsCycleCollectionParticipant.h" #include "nsChangeHint.h" #include <algorithm> // This also pulls in gfxTypes.h, which we cannot include directly. #include "gfxRect.h" #include "nsTArray.h" #include "nsAutoPtr.h" #include "nsIWidget.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "prclist.h" #include "Layers.h" #include "nsRefreshDriver.h" #ifdef IBMBIDI class nsBidiPresUtils; #endif // IBMBIDI @@ -957,18 +958,18 @@ public: */ nsIFrame* GetPrimaryFrameFor(nsIContent* aContent); void NotifyDestroyingFrame(nsIFrame* aFrame) { PropertyTable()->DeleteAllFor(aFrame); } - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } bool IsRootContentDocument(); bool IsCrossProcessRootContentDocument(); bool IsGlyph() const { return mIsGlyph; @@ -1052,17 +1053,17 @@ protected: , mDefaultCursiveFont("cursive", NS_FONT_STYLE_NORMAL, NS_FONT_VARIANT_NORMAL, NS_FONT_WEIGHT_NORMAL, NS_FONT_STRETCH_NORMAL, 0, 0) , mDefaultFantasyFont("fantasy", NS_FONT_STYLE_NORMAL, NS_FONT_VARIANT_NORMAL, NS_FONT_WEIGHT_NORMAL, NS_FONT_STRETCH_NORMAL, 0, 0) {} - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; LangGroupFontPrefs *curr = mNext; while (curr) { n += aMallocSizeOf(curr); // Measurement of the following members may be added later if DMD finds // it is worthwhile: // - mLangGroup @@ -1414,17 +1415,17 @@ public: */ void AddWillPaintObserver(nsIRunnable* aRunnable); /** * Run all runnables that need to get called before the next paint. */ void FlushWillPaintObservers(); - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; protected: /** * Start a timer to ensure we eventually run ApplyPluginGeometryUpdates. */ void InitApplyPluginGeometryTimer(); /** * Cancel the timer that ensures we eventually run ApplyPluginGeometryUpdates.
--- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -13,16 +13,17 @@ * identified per MPL Section 3.3 * * Date Modified by Description of modification * 05/03/2000 IBM Corp. Observer events for reflow states */ /* a presentation of a document, part 2 */ +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/PBrowserChild.h" #include "mozilla/dom/TabChild.h" #include "mozilla/Likely.h" #include "mozilla/Util.h" #include <algorithm> #ifdef XP_WIN #include "winuser.h" @@ -9439,17 +9440,17 @@ PresShell::GetRootPresShell() if (rootPresContext) { return static_cast<PresShell*>(rootPresContext->PresShell()); } } return nullptr; } void -PresShell::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +PresShell::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, nsArenaMemoryStats *aArenaObjectsSize, size_t *aPresShellSize, size_t *aStyleSetsSize, size_t *aTextRunsSize, size_t *aPresContextSize) { mFrameArena.SizeOfExcludingThis(aMallocSizeOf, aArenaObjectsSize); *aPresShellSize = aMallocSizeOf(this); @@ -9458,17 +9459,17 @@ PresShell::SizeOfIncludingThis(nsMallocS *aStyleSetsSize = StyleSet()->SizeOfIncludingThis(aMallocSizeOf); *aTextRunsSize = SizeOfTextRuns(aMallocSizeOf); *aPresContextSize = mPresContext->SizeOfIncludingThis(aMallocSizeOf); } size_t -PresShell::SizeOfTextRuns(nsMallocSizeOfFun aMallocSizeOf) const +PresShell::SizeOfTextRuns(MallocSizeOf aMallocSizeOf) const { nsIFrame* rootFrame = mFrameConstructor->GetRootFrame(); if (!rootFrame) { return 0; } // clear the TEXT_RUN_MEMORY_ACCOUNTED flags nsLayoutUtils::SizeOfTextRunsForFrames(rootFrame, nullptr,
--- a/layout/base/nsPresShell.h +++ b/layout/base/nsPresShell.h @@ -31,16 +31,17 @@ #include "nsIWidget.h" #include "nsStyleSet.h" #include "nsPresArena.h" #include "nsFrameSelection.h" #include "nsGUIEvent.h" #include "nsContentUtils.h" // For AddScriptBlocker(). #include "nsRefreshDriver.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" class nsRange; class nsIDragService; class nsCSSStyleSheet; struct RangePaintInfo; struct nsCallbackEventRequest; #ifdef MOZ_REFLOW_PERF @@ -307,23 +308,23 @@ public: virtual bool GetIsViewportOverridden() MOZ_OVERRIDE { return mViewportOverridden; } virtual bool IsLayoutFlushObserver() MOZ_OVERRIDE { return GetPresContext()->RefreshDriver()-> IsLayoutFlushObserver(this); } - void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + void SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf, nsArenaMemoryStats *aArenaObjectsSize, size_t *aPresShellSize, size_t *aStyleSetsSize, size_t *aTextRunsSize, size_t *aPresContextSize) MOZ_OVERRIDE; - size_t SizeOfTextRuns(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfTextRuns(mozilla::MallocSizeOf aMallocSizeOf) const; virtual void AddInvalidateHiddenPresShellObserver(nsRefreshDriver *aDriver) MOZ_OVERRIDE; // This data is stored as a content property (nsGkAtoms::scrolling) on // mContentToScrollTo when we have a pending ScrollIntoView. struct ScrollIntoViewData { ScrollAxis mContentScrollVAxis;
--- a/layout/base/nsStyleSheetService.cpp +++ b/layout/base/nsStyleSheetService.cpp @@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* implementation of interface for managing user and user-agent style sheets */ #include "prlog.h" #include "nsStyleSheetService.h" #include "nsIStyleSheet.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Loader.h" #include "nsCSSStyleSheet.h" #include "nsIURI.h" #include "nsContentCID.h" #include "nsCOMPtr.h" #include "nsIServiceManager.h" #include "nsICategoryManager.h" #include "nsISupportsPrimitives.h" @@ -250,35 +251,35 @@ nsStyleSheetService::GetInstance() do_GetService(NS_STYLESHEETSERVICE_CONTRACTID); first = false; } return gInstance; } size_t -nsStyleSheetService::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsStyleSheetService::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { if (!nsStyleSheetService::gInstance) { return 0; } return nsStyleSheetService::gInstance-> SizeOfIncludingThisHelper(aMallocSizeOf); } static size_t SizeOfElementIncludingThis(nsIStyleSheet* aElement, - nsMallocSizeOfFun aMallocSizeOf, void *aData) + mozilla::MallocSizeOf aMallocSizeOf, void *aData) { return aElement->SizeOfIncludingThis(aMallocSizeOf); } size_t -nsStyleSheetService::SizeOfIncludingThisHelper(nsMallocSizeOfFun aMallocSizeOf) const +nsStyleSheetService::SizeOfIncludingThisHelper(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mSheets[AGENT_SHEET].SizeOfExcludingThis(SizeOfElementIncludingThis, aMallocSizeOf); n += mSheets[USER_SHEET].SizeOfExcludingThis(SizeOfElementIncludingThis, aMallocSizeOf); n += mSheets[AUTHOR_SHEET].SizeOfExcludingThis(SizeOfElementIncludingThis, aMallocSizeOf);
--- a/layout/base/nsStyleSheetService.h +++ b/layout/base/nsStyleSheetService.h @@ -7,16 +7,17 @@ #ifndef nsStyleSheetService_h_ #define nsStyleSheetService_h_ #include "nsIStyleSheetService.h" #include "nsCOMArray.h" #include "nsIStyleSheet.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" class nsISimpleEnumerator; class nsICategoryManager; #define NS_STYLESHEETSERVICE_CID \ {0xfcca6f83, 0x9f7d, 0x44e4, {0xa7, 0x4b, 0xb5, 0x94, 0x33, 0xe6, 0xc8, 0xc3}} #define NS_STYLESHEETSERVICE_CONTRACTID \ @@ -34,17 +35,17 @@ class nsStyleSheetService MOZ_FINAL : pu NS_DECL_NSISTYLESHEETSERVICE NS_HIDDEN_(nsresult) Init(); nsCOMArray<nsIStyleSheet>* AgentStyleSheets() { return &mSheets[AGENT_SHEET]; } nsCOMArray<nsIStyleSheet>* UserStyleSheets() { return &mSheets[USER_SHEET]; } nsCOMArray<nsIStyleSheet>* AuthorStyleSheets() { return &mSheets[AUTHOR_SHEET]; } - static size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + static size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); static nsStyleSheetService *GetInstance(); static nsStyleSheetService *gInstance; private: NS_HIDDEN_(void) RegisterFromEnumerator(nsICategoryManager *aManager, const char *aCategory, @@ -54,16 +55,16 @@ class nsStyleSheetService MOZ_FINAL : pu NS_HIDDEN_(int32_t) FindSheetByURI(const nsCOMArray<nsIStyleSheet> &sheets, nsIURI *sheetURI); // Like LoadAndRegisterSheet, but doesn't notify. If successful, the // new sheet will be the last sheet in mSheets[aSheetType]. NS_HIDDEN_(nsresult) LoadAndRegisterSheetInternal(nsIURI *aSheetURI, uint32_t aSheetType); - size_t SizeOfIncludingThisHelper(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThisHelper(mozilla::MallocSizeOf aMallocSizeOf) const; nsCOMArray<nsIStyleSheet> mSheets[3]; nsIMemoryReporter* mReporter; }; #endif
--- a/layout/generic/nsTextRunTransformations.cpp +++ b/layout/generic/nsTextRunTransformations.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "nsTextRunTransformations.h" #include "nsTextFrameUtils.h" #include "gfxSkipChars.h" #include "nsGkAtoms.h" #include "nsStyleConsts.h" #include "nsStyleContext.h" @@ -352,29 +353,29 @@ nsTransformedTextRun::SetPotentialLineBr aBreakBefore, aRefContext); if (changed) { mNeedsRebuild = true; } return changed; } size_t -nsTransformedTextRun::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsTransformedTextRun::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) { size_t total = gfxTextRun::SizeOfExcludingThis(aMallocSizeOf); total += mStyles.SizeOfExcludingThis(aMallocSizeOf); total += mCapitalize.SizeOfExcludingThis(aMallocSizeOf); if (mOwnsFactory) { total += aMallocSizeOf(mFactory); } return total; } size_t -nsTransformedTextRun::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsTransformedTextRun::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } nsTransformedTextRun* nsTransformingTextRunFactory::MakeTextRun(const PRUnichar* aString, uint32_t aLength, const gfxTextRunFactory::Parameters* aParams, gfxFontGroup* aFontGroup, uint32_t aFlags,
--- a/layout/generic/nsTextRunTransformations.h +++ b/layout/generic/nsTextRunTransformations.h @@ -2,16 +2,17 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef NSTEXTRUNTRANSFORMATIONS_H_ #define NSTEXTRUNTRANSFORMATIONS_H_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "gfxFont.h" class nsTransformedTextRun; class nsStyleContext; class nsTransformingTextRunFactory { public: virtual ~nsTransformingTextRunFactory() {} @@ -97,18 +98,18 @@ public: { if (mNeedsRebuild) { mNeedsRebuild = false; mFactory->RebuildTextRun(this, aRefContext); } } // override the gfxTextRun impls to account for additional members here - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) MOZ_MUST_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) MOZ_MUST_OVERRIDE; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) MOZ_MUST_OVERRIDE; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) MOZ_MUST_OVERRIDE; nsTransformingTextRunFactory *mFactory; nsTArray<nsRefPtr<nsStyleContext> > mStyles; nsTArray<bool> mCapitalize; nsString mString; bool mOwnsFactory; bool mNeedsRebuild;
--- a/layout/style/AnimationCommon.cpp +++ b/layout/style/AnimationCommon.cpp @@ -10,16 +10,17 @@ #include "nsCSSValue.h" #include "nsStyleContext.h" #include "nsIFrame.h" #include "nsLayoutUtils.h" #include "mozilla/LookAndFeel.h" #include "Layers.h" #include "FrameLayerBuilder.h" #include "nsDisplayList.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Preferences.h" using namespace mozilla::layers; namespace mozilla { namespace css { /* static */ bool @@ -116,30 +117,30 @@ CommonAnimationManager::HasAttributeDepe /* virtual */ bool CommonAnimationManager::MediumFeaturesChanged(nsPresContext* aPresContext) { return false; } /* virtual */ size_t -CommonAnimationManager::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +CommonAnimationManager::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mElementData // // The following members are not measured // - mPresContext, because it's non-owning return 0; } /* virtual */ size_t -CommonAnimationManager::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +CommonAnimationManager::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } /* static */ bool CommonAnimationManager::ExtractComputedValueForTransition( nsCSSProperty aProperty, nsStyleContext* aStyleContext,
--- a/layout/style/AnimationCommon.h +++ b/layout/style/AnimationCommon.h @@ -7,16 +7,17 @@ #define mozilla_css_AnimationCommon_h #include "nsIStyleRuleProcessor.h" #include "nsIStyleRule.h" #include "nsRefreshDriver.h" #include "prclist.h" #include "nsStyleAnimation.h" #include "nsCSSProperty.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nsSMILKeySpline.h" #include "nsStyleStruct.h" #include "mozilla/Attributes.h" class nsPresContext; @@ -37,19 +38,19 @@ public: NS_DECL_ISUPPORTS // nsIStyleRuleProcessor (parts) virtual nsRestyleHint HasStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool HasDocumentStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual nsRestyleHint HasAttributeDependentStyle(AttributeRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool MediumFeaturesChanged(nsPresContext* aPresContext) MOZ_OVERRIDE; - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; /** * Notify the manager that the pres context is going away. */ void Disconnect(); enum FlushFlags {
--- a/layout/style/Declaration.cpp +++ b/layout/style/Declaration.cpp @@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * representation of a declaration block (or style attribute) in a CSS * stylesheet */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "mozilla/css/Declaration.h" #include "nsPrintfCString.h" namespace mozilla { namespace css { @@ -1063,17 +1064,17 @@ Declaration::EnsureMutable() if (!IsMutable()) { return new Declaration(*this); } else { return this; } } size_t -Declaration::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +Declaration::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mOrder.SizeOfExcludingThis(aMallocSizeOf); n += mData ? mData ->SizeOfIncludingThis(aMallocSizeOf) : 0; n += mImportantData ? mImportantData->SizeOfIncludingThis(aMallocSizeOf) : 0; return n; }
--- a/layout/style/Declaration.h +++ b/layout/style/Declaration.h @@ -7,16 +7,17 @@ * representation of a declaration block (or style attribute) in a CSS * stylesheet */ #ifndef mozilla_css_Declaration_h #define mozilla_css_Declaration_h #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" // This header is in EXPORTS because it's used in several places in content/, // but it's not really a public interface. #ifndef _IMPL_NS_LAYOUT #error "This file should only be included within the layout library" #endif #include "nsCSSDataBlock.h" @@ -222,17 +223,17 @@ private: nsAutoString& aValue, nsAString& aResult) const; public: nsCSSProperty OrderValueAt(uint32_t aValue) const { return nsCSSProperty(mOrder.ElementAt(aValue)); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: nsAutoTArray<uint16_t, 8> mOrder; // never null, except while expanded, or before the first call to // InitializeEmpty or CompressFrom. nsAutoPtr<nsCSSCompressedDataBlock> mData;
--- a/layout/style/GroupRule.h +++ b/layout/style/GroupRule.h @@ -7,16 +7,17 @@ * internal interface representing CSS style rules that contain other * rules, such as @media rules */ #ifndef mozilla_css_GroupRule_h__ #define mozilla_css_GroupRule_h__ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Rule.h" #include "nsCOMArray.h" #include "nsAutoPtr.h" #include "nsCycleCollectionParticipant.h" class nsPresContext; class nsMediaQueryResultCacheKey; @@ -64,18 +65,18 @@ public: nsresult DeleteStyleRuleAt(uint32_t aIndex); nsresult InsertStyleRuleAt(uint32_t aIndex, Rule* aRule); nsresult ReplaceStyleRule(Rule *aOld, Rule *aNew); virtual bool UseForPresentation(nsPresContext* aPresContext, nsMediaQueryResultCacheKey& aKey) = 0; // non-virtual -- it is only called by subclasses - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const = 0; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const = 0; protected: // to help implement nsIDOMCSSRule nsresult AppendRulesToCssText(nsAString& aCssText); // to implement common methods on nsIDOMCSSMediaRule and // nsIDOMCSSMozDocumentRule nsresult GetCssRules(nsIDOMCSSRuleList* *aRuleList);
--- a/layout/style/ImportRule.h +++ b/layout/style/ImportRule.h @@ -5,16 +5,17 @@ /* class for CSS @import rules */ #ifndef mozilla_css_ImportRule_h__ #define mozilla_css_ImportRule_h__ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Rule.h" #include "nsIDOMCSSImportRule.h" #include "nsCSSRules.h" class nsMediaList; class nsString; namespace mozilla { @@ -44,17 +45,17 @@ public: #endif // Rule methods virtual int32_t GetType() const; virtual already_AddRefed<Rule> Clone() const; void SetSheet(nsCSSStyleSheet*); - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; // nsIDOMCSSRule interface NS_DECL_NSIDOMCSSRULE // nsIDOMCSSImportRule interface NS_DECL_NSIDOMCSSIMPORTRULE private:
--- a/layout/style/Loader.cpp +++ b/layout/style/Loader.cpp @@ -11,16 +11,17 @@ * to Mozilla code or documentation identified per MPL Section 3.3 * * Date Modified by Description of modification * 04/20/2000 IBM Corp. OS/2 VisualAge build. */ /* loading of CSS style sheets using the network APIs */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "mozilla/css/Loader.h" #include "nsIRunnable.h" #include "nsIUnicharStreamLoader.h" #include "nsSyncLoadService.h" #include "nsCOMPtr.h" #include "nsString.h" @@ -2437,37 +2438,37 @@ Loader::UnlinkCachedSheets() { if (mCompleteSheets.IsInitialized()) { mCompleteSheets.Clear(); } } struct SheetMemoryCounter { size_t size; - nsMallocSizeOfFun mallocSizeOf; + mozilla::MallocSizeOf mallocSizeOf; }; static size_t CountSheetMemory(URIPrincipalAndCORSModeHashKey* /* unused */, const nsRefPtr<nsCSSStyleSheet>& aSheet, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* /* unused */) { // If aSheet has a parent, then its parent will report it so we don't // have to worry about it here. // Likewise, if aSheet has an owning node, then the document that // node is in will report it. if (aSheet->GetOwnerNode() || aSheet->GetParentSheet()) { return 0; } return aSheet->SizeOfIncludingThis(aMallocSizeOf); } size_t -Loader::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +Loader::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t s = aMallocSizeOf(this); s += mCompleteSheets.SizeOfExcludingThis(CountSheetMemory, aMallocSizeOf); s += mObservers.SizeOfExcludingThis(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is
--- a/layout/style/Loader.h +++ b/layout/style/Loader.h @@ -15,16 +15,17 @@ #include "nsDataHashtable.h" #include "nsInterfaceHashtable.h" #include "nsRefPtrHashtable.h" #include "nsTArray.h" #include "nsTObserverArray.h" #include "nsURIHashKey.h" #include "mozilla/Attributes.h" #include "mozilla/CORSMode.h" +#include "mozilla/MemoryReporting.h" class nsIAtom; class nsICSSLoaderObserver; class nsCSSStyleSheet; class nsIContent; class nsIDocument; class nsCSSParser; class nsMediaList; @@ -363,17 +364,17 @@ public: // only be called from the document that owns this loader. void TraverseCachedSheets(nsCycleCollectionTraversalCallback& cb); // Unlink the cached stylesheets we're holding on to. Again, this // should only be called from the document that owns this loader. void UnlinkCachedSheets(); // Measure our size. - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: friend class SheetLoadData; // Note: null aSourcePrincipal indicates that the content policy and // CheckLoadURI checks should be skipped. nsresult CheckLoadAllowed(nsIPrincipal* aSourcePrincipal, nsIURI* aTargetURI,
--- a/layout/style/NameSpaceRule.h +++ b/layout/style/NameSpaceRule.h @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* class for CSS @namespace rules */ #ifndef mozilla_css_NameSpaceRule_h__ #define mozilla_css_NameSpaceRule_h__ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Rule.h" #include "nsIDOMCSSRule.h" class nsIAtom; // IID for the NameSpaceRule class {f0b0dbe1-5031-4a21-b06a-dc141ef2af98} #define NS_CSS_NAMESPACE_RULE_IMPL_CID \ @@ -47,17 +48,17 @@ public: // Rule methods virtual int32_t GetType() const; virtual already_AddRefed<Rule> Clone() const; nsIAtom* GetPrefix() const { return mPrefix; } void GetURLSpec(nsString& aURLSpec) const { aURLSpec = mURLSpec; } - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE; // nsIDOMCSSRule interface NS_DECL_NSIDOMCSSRULE private: nsCOMPtr<nsIAtom> mPrefix; nsString mURLSpec;
--- a/layout/style/Rule.h +++ b/layout/style/Rule.h @@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* base class for all rule types in a CSS style sheet */ #ifndef mozilla_css_Rule_h___ #define mozilla_css_Rule_h___ +#include "mozilla/MemoryReporting.h" #include "nsIStyleRule.h" #include "nsIDOMCSSRule.h" #include "nsCSSStyleSheet.h" class nsIStyleSheet; class nsIDocument; struct nsRuleData; template<class T> struct already_AddRefed; @@ -106,22 +107,22 @@ public: virtual nsIDOMCSSRule* GetExistingDOMRule() = 0; // to implement methods on nsIDOMCSSRule nsresult GetParentRule(nsIDOMCSSRule** aParentRule); nsresult GetParentStyleSheet(nsIDOMCSSStyleSheet** aSheet); // This is pure virtual because all of Rule's data members are non-owning and // thus measured elsewhere. - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE = 0; // This is used to measure nsCOMArray<Rule>s. static size_t SizeOfCOMArrayElementIncludingThis(css::Rule* aElement, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void* aData); protected: // This is either an nsCSSStyleSheet* or a nsHTMLStyleSheet*. The former // if the low bit is 0, the latter if the low bit is 1. uintptr_t mSheet; GroupRule* mParentRule; };
--- a/layout/style/StyleRule.cpp +++ b/layout/style/StyleRule.cpp @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * representation of CSS style rules (selectors+declaration), CSS * selectors, and DOM objects for style rules, selectors, and * declarations */ +#include "mozilla/MemoryReporting.h" #include "mozilla/css/StyleRule.h" #include "mozilla/css/GroupRule.h" #include "mozilla/css/Declaration.h" #include "nsCSSStyleSheet.h" #include "nsIDocument.h" #include "nsIAtom.h" #include "nsString.h" #include "nsStyleUtil.h" @@ -77,17 +78,17 @@ nsAtomList::Clone(bool aDeep) const return nullptr; if (aDeep) NS_CSS_CLONE_LIST_MEMBER(nsAtomList, this, mNext, result, (false)); return result; } size_t -nsAtomList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsAtomList::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsAtomList* a = this; while (a) { n += aMallocSizeOf(a); // The following members aren't measured: // - a->mAtom, because it may be shared @@ -172,17 +173,17 @@ nsPseudoClassList::Clone(bool aDeep) con if (aDeep) NS_CSS_CLONE_LIST_MEMBER(nsPseudoClassList, this, mNext, result, (false)); return result; } size_t -nsPseudoClassList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsPseudoClassList::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsPseudoClassList* p = this; while (p) { n += aMallocSizeOf(p); if (!p->u.mMemory) { // do nothing @@ -804,17 +805,17 @@ nsCSSSelector::AppendToStringWithoutComb bool nsCSSSelector::CanBeNamespaced(bool aIsNegated) const { return !aIsNegated || (!mIDList && !mClassList && !mPseudoClassList && !mAttrList); } size_t -nsCSSSelector::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSSelector::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsCSSSelector* s = this; while (s) { n += aMallocSizeOf(s); #define MEASURE(x) n += x ? x->SizeOfIncludingThis(aMallocSizeOf) : 0; @@ -894,17 +895,17 @@ nsCSSSelectorList::Clone(bool aDeep) con if (aDeep) { NS_CSS_CLONE_LIST_MEMBER(nsCSSSelectorList, this, mNext, result, (false)); } return result; } size_t -nsCSSSelectorList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSSelectorList::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsCSSSelectorList* s = this; while (s) { n += aMallocSizeOf(s); n += s->mSelectors ? s->mSelectors->SizeOfIncludingThis(aMallocSizeOf) : 0; s = s->mNext; } @@ -1496,17 +1497,17 @@ void StyleRule::SetSelectorText(const nsAString& aSelectorText) { // XXX TBI - get a parser and re-parse the selectors, // XXX then need to re-compute the cascade // XXX and dirty sheet } /* virtual */ size_t -StyleRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +StyleRule::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mSelector ? mSelector->SizeOfIncludingThis(aMallocSizeOf) : 0; n += mDeclaration ? mDeclaration->SizeOfIncludingThis(aMallocSizeOf) : 0; // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mImportantRule;
--- a/layout/style/StyleRule.h +++ b/layout/style/StyleRule.h @@ -9,16 +9,17 @@ */ #ifndef mozilla_css_StyleRule_h__ #define mozilla_css_StyleRule_h__ #include "mozilla/Attributes.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Rule.h" #include "nsString.h" #include "nsCOMPtr.h" #include "nsCSSPseudoElements.h" #include "nsCSSPseudoClasses.h" #include "nsAutoPtr.h" @@ -31,17 +32,17 @@ struct nsAtomList { public: nsAtomList(nsIAtom* aAtom); nsAtomList(const nsString& aAtomValue); ~nsAtomList(void); /** Do a deep clone. Should be used only on the first in the linked list. */ nsAtomList* Clone() const { return Clone(true); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsCOMPtr<nsIAtom> mAtom; nsAtomList* mNext; private: nsAtomList* Clone(bool aDeep) const; nsAtomList(const nsAtomList& aCopy) MOZ_DELETE; nsAtomList& operator=(const nsAtomList& aCopy) MOZ_DELETE; @@ -54,17 +55,17 @@ public: nsPseudoClassList(nsCSSPseudoClasses::Type aType, const int32_t *aIntPair); nsPseudoClassList(nsCSSPseudoClasses::Type aType, nsCSSSelectorList *aSelectorList /* takes ownership */); ~nsPseudoClassList(void); /** Do a deep clone. Should be used only on the first in the linked list. */ nsPseudoClassList* Clone() const { return Clone(true); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; union { // For a given value of mType, we have either: // a. no value, which means mMemory is always null // (if none of the conditions for (b), (c), or (d) is true) // b. a string value, which means mString/mMemory is non-null // (if nsCSSPseudoClasses::HasStringArg(mType)) // c. an integer pair value, which means mNumbers/mMemory is non-null @@ -184,17 +185,17 @@ public: } void SetPseudoType(nsCSSPseudoElements::Type aType) { NS_ASSERTION(static_cast<int32_t>(aType) >= INT16_MIN && static_cast<int32_t>(aType) <= INT16_MAX, "Out of bounds - this will overflow mPseudoType"); mPseudoType = static_cast<int16_t>(aType); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; // For case-sensitive documents, mLowercaseTag is the same as mCasedTag, // but in case-insensitive documents (HTML) mLowercaseTag is lowercase. // Also, for pseudo-elements mCasedTag will be null but mLowercaseTag // contains their name. nsCOMPtr<nsIAtom> mLowercaseTag; nsCOMPtr<nsIAtom> mCasedTag; nsAtomList* mIDList; @@ -242,17 +243,17 @@ struct nsCSSSelectorList { */ void ToString(nsAString& aResult, nsCSSStyleSheet* aSheet); /** * Do a deep clone. Should be used only on the first in the list. */ nsCSSSelectorList* Clone() const { return Clone(true); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsCSSSelector* mSelectors; int32_t mWeight; nsCSSSelectorList* mNext; protected: friend class inDOMUtils; nsCSSSelectorList* Clone(bool aDeep) const; @@ -360,17 +361,17 @@ public: // The new mapping function. virtual void MapRuleInfoInto(nsRuleData* aRuleData) MOZ_OVERRIDE; #ifdef DEBUG virtual void List(FILE* out = stdout, int32_t aIndent = 0) const MOZ_OVERRIDE; #endif - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: ~StyleRule(); private: nsCSSSelectorList* mSelector; // null for style attribute Declaration* mDeclaration; ImportantRule* mImportantRule; // initialized by RuleMatched
--- a/layout/style/nsAnimationManager.cpp +++ b/layout/style/nsAnimationManager.cpp @@ -1,13 +1,14 @@ /* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "nsAnimationManager.h" #include "nsPresContext.h" #include "nsRuleProcessorData.h" #include "nsStyleSet.h" #include "nsCSSRules.h" #include "nsStyleAnimation.h" #include "nsSMILKeySpline.h" #include "nsEventDispatcher.h" @@ -514,28 +515,28 @@ nsAnimationManager::RulesMatching(AnonBo #ifdef MOZ_XUL /* virtual */ void nsAnimationManager::RulesMatching(XULTreeRuleProcessorData* aData) { } #endif /* virtual */ size_t -nsAnimationManager::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsAnimationManager::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return CommonAnimationManager::SizeOfExcludingThis(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mKeyframesRules // - mPendingEvents } /* virtual */ size_t -nsAnimationManager::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsAnimationManager::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } nsIStyleRule* nsAnimationManager::CheckAnimationRule(nsStyleContext* aStyleContext, mozilla::dom::Element* aElement) {
--- a/layout/style/nsAnimationManager.h +++ b/layout/style/nsAnimationManager.h @@ -6,16 +6,17 @@ #define nsAnimationManager_h_ #include "mozilla/Attributes.h" #include "AnimationCommon.h" #include "nsCSSPseudoElements.h" #include "nsStyleContext.h" #include "nsDataHashtable.h" #include "nsGUIEvent.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "mozilla/Preferences.h" #include "nsThreadUtils.h" class nsCSSKeyframesRule; namespace mozilla { namespace css { @@ -228,19 +229,19 @@ public: // nsIStyleRuleProcessor (parts) virtual void RulesMatching(ElementRuleProcessorData* aData) MOZ_OVERRIDE; virtual void RulesMatching(PseudoElementRuleProcessorData* aData) MOZ_OVERRIDE; virtual void RulesMatching(AnonBoxRuleProcessorData* aData) MOZ_OVERRIDE; #ifdef MOZ_XUL virtual void RulesMatching(XULTreeRuleProcessorData* aData) MOZ_OVERRIDE; #endif - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; // nsARefreshObserver virtual void WillRefresh(mozilla::TimeStamp aTime) MOZ_OVERRIDE; void FlushAnimations(FlushFlags aFlags); /**
--- a/layout/style/nsCSSDataBlock.cpp +++ b/layout/style/nsCSSDataBlock.cpp @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * compact representation of the property-value pairs within a CSS * declaration, and the code for expanding and compacting it */ #include "nsCSSDataBlock.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Declaration.h" #include "mozilla/css/ImageLoader.h" #include "nsRuleData.h" #include "nsStyleSet.h" #include "nsStyleContext.h" namespace css = mozilla::css; @@ -221,17 +222,17 @@ nsCSSCompressedDataBlock::~nsCSSCompress /* static */ nsCSSCompressedDataBlock* nsCSSCompressedDataBlock::CreateEmptyBlock() { nsCSSCompressedDataBlock *result = new(0) nsCSSCompressedDataBlock(0); return result; } size_t -nsCSSCompressedDataBlock::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSCompressedDataBlock::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); for (uint32_t i = 0; i < mNumProps; i++) { n += ValueAtIndex(i)->SizeOfExcludingThis(aMallocSizeOf); } return n; }
--- a/layout/style/nsCSSDataBlock.h +++ b/layout/style/nsCSSDataBlock.h @@ -6,16 +6,17 @@ /* * compact representation of the property-value pairs within a CSS * declaration, and the code for expanding and compacting it */ #ifndef nsCSSDataBlock_h__ #define nsCSSDataBlock_h__ +#include "mozilla/MemoryReporting.h" #include "nsCSSProps.h" #include "nsCSSPropertySet.h" struct nsRuleData; class nsCSSExpandedDataBlock; namespace mozilla { namespace css { @@ -76,17 +77,17 @@ public: */ nsCSSCompressedDataBlock* Clone() const; /** * Create a new nsCSSCompressedDataBlock holding no declarations. */ static nsCSSCompressedDataBlock* CreateEmptyBlock(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; bool HasDefaultBorderImageSlice() const; bool HasDefaultBorderImageWidth() const; bool HasDefaultBorderImageOutset() const; bool HasDefaultBorderImageRepeat() const; private: void* operator new(size_t aBaseSize, uint32_t aNumProps) {
--- a/layout/style/nsCSSRuleProcessor.cpp +++ b/layout/style/nsCSSRuleProcessor.cpp @@ -18,16 +18,17 @@ #include "nsCSSRuleProcessor.h" #include "nsRuleProcessorData.h" #include <algorithm> #include "nsCRT.h" #include "nsIAtom.h" #include "pldhash.h" #include "nsICSSPseudoComparator.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/StyleRule.h" #include "mozilla/css/GroupRule.h" #include "nsIDocument.h" #include "nsPresContext.h" #include "nsEventStateManager.h" #include "nsGkAtoms.h" #include "nsString.h" #include "nsUnicharUtils.h" @@ -451,18 +452,18 @@ struct NodeMatchContext; class RuleHash { public: RuleHash(bool aQuirksMode); ~RuleHash(); void AppendRule(const RuleSelectorPair &aRuleInfo); void EnumerateAllRules(Element* aElement, ElementDependentRuleProcessorData* aData, NodeMatchContext& aNodeMatchContext); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const; + size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const; protected: typedef nsTArray<RuleValue> RuleValueList; void AppendRuleToTable(PLDHashTable* aTable, const void* aKey, const RuleSelectorPair& aRuleInfo); void AppendUniversalRule(const RuleSelectorPair& aRuleInfo); int32_t mRuleCount; @@ -789,24 +790,24 @@ void RuleHash::EnumerateAllRules(Element *end = mEnumList[0].mEnd; value != end; ++value) { ContentEnumFunc(*value, value->mSelector, aData, aNodeContext, filter); } } } static size_t -SizeOfRuleHashTableEntry(PLDHashEntryHdr* aHdr, nsMallocSizeOfFun aMallocSizeOf, void *) +SizeOfRuleHashTableEntry(PLDHashEntryHdr* aHdr, MallocSizeOf aMallocSizeOf, void *) { RuleHashTableEntry* entry = static_cast<RuleHashTableEntry*>(aHdr); return entry->mRules.SizeOfExcludingThis(aMallocSizeOf); } size_t -RuleHash::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +RuleHash::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; if (mIdTable.ops) { n += PL_DHashTableSizeOfExcludingThis(&mIdTable, SizeOfRuleHashTableEntry, aMallocSizeOf); } @@ -830,17 +831,17 @@ RuleHash::SizeOfExcludingThis(nsMallocSi } n += mUniversalRules.SizeOfExcludingThis(aMallocSizeOf); return n; } size_t -RuleHash::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +RuleHash::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } //-------------------------------- // A hash table mapping atoms to lists of selectors struct AtomSelectorEntry : public PLDHashEntryHdr { @@ -954,17 +955,17 @@ struct RuleCascadeData { #ifdef MOZ_XUL PL_DHashTableFinish(&mXULTreeRules); #endif for (uint32_t i = 0; i < ArrayLength(mPseudoElementRuleHashes); ++i) { delete mPseudoElementRuleHashes[i]; } } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const; RuleHash mRuleHash; RuleHash* mPseudoElementRuleHashes[nsCSSPseudoElements::ePseudo_PseudoElementCount]; nsTArray<nsCSSRuleProcessor::StateSelector> mStateSelectors; nsEventStates mSelectorDocumentStates; PLDHashTable mClassSelectors; PLDHashTable mIdSelectors; @@ -987,24 +988,24 @@ struct RuleCascadeData { nsMediaQueryResultCacheKey mCacheKey; RuleCascadeData* mNext; // for a different medium const bool mQuirksMode; }; static size_t -SizeOfSelectorsEntry(PLDHashEntryHdr* aHdr, nsMallocSizeOfFun aMallocSizeOf, void *) +SizeOfSelectorsEntry(PLDHashEntryHdr* aHdr, MallocSizeOf aMallocSizeOf, void *) { AtomSelectorEntry* entry = static_cast<AtomSelectorEntry*>(aHdr); return entry->mSelectors.SizeOfExcludingThis(aMallocSizeOf); } size_t -RuleCascadeData::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +RuleCascadeData::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mRuleHash.SizeOfExcludingThis(aMallocSizeOf); for (uint32_t i = 0; i < ArrayLength(mPseudoElementRuleHashes); ++i) { if (mPseudoElementRuleHashes[i]) n += mPseudoElementRuleHashes[i]->SizeOfIncludingThis(aMallocSizeOf); } @@ -2695,30 +2696,30 @@ nsCSSRuleProcessor::MediumFeaturesChange // anything changed. See bug 448281. if (old) { RefreshRuleCascade(aPresContext); } return (old != mRuleCascades); } /* virtual */ size_t -nsCSSRuleProcessor::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSRuleProcessor::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; n += mSheets.SizeOfExcludingThis(aMallocSizeOf); for (RuleCascadeData* cascade = mRuleCascades; cascade; cascade = cascade->mNext) { n += cascade->SizeOfIncludingThis(aMallocSizeOf); } return n; } /* virtual */ size_t -nsCSSRuleProcessor::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSRuleProcessor::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } // Append all the currently-active font face rules to aArray. Return // true for success and false for failure. bool nsCSSRuleProcessor::AppendFontFaceRules(
--- a/layout/style/nsCSSRuleProcessor.h +++ b/layout/style/nsCSSRuleProcessor.h @@ -8,16 +8,17 @@ * style rule processor for CSS style sheets, responsible for selector * matching and cascading */ #ifndef nsCSSRuleProcessor_h_ #define nsCSSRuleProcessor_h_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsIStyleRuleProcessor.h" #include "nsCSSStyleSheet.h" #include "nsTArray.h" #include "nsAutoPtr.h" #include "nsCSSRules.h" #include "nsRuleWalker.h" #include "nsEventStates.h" @@ -107,19 +108,19 @@ public: virtual bool HasDocumentStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual nsRestyleHint HasAttributeDependentStyle(AttributeRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool MediumFeaturesChanged(nsPresContext* aPresContext) MOZ_OVERRIDE; - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun mallocSizeOf) + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; // Append all the currently-active font face rules to aArray. Return // true for success and false for failure. bool AppendFontFaceRules(nsPresContext* aPresContext, nsTArray<nsFontFaceRuleContainer>& aArray); bool AppendKeyframesRules(nsPresContext* aPresContext,
--- a/layout/style/nsCSSRules.cpp +++ b/layout/style/nsCSSRules.cpp @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* rules in a CSS stylesheet other than style rules (e.g., @import rules) */ #include "mozilla/Attributes.h" #include "nsCSSRules.h" #include "nsCSSValue.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/ImportRule.h" #include "mozilla/css/NameSpaceRule.h" #include "nsString.h" #include "nsIAtom.h" #include "nsCSSProps.h" #include "nsCSSStyleSheet.h" @@ -112,17 +113,17 @@ Rule::GetParentStyleSheet(nsIDOMCSSStyle NS_ENSURE_ARG_POINTER(aSheet); NS_IF_ADDREF(*aSheet = GetStyleSheet()); return NS_OK; } size_t Rule::SizeOfCOMArrayElementIncludingThis(css::Rule* aElement, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aData) { return aElement->SizeOfIncludingThis(aMallocSizeOf); } // ------------------------------- // Style Rule List for group rules // @@ -323,17 +324,17 @@ CharsetRule::GetParentStyleSheet(nsIDOMC NS_IMETHODIMP CharsetRule::GetParentRule(nsIDOMCSSRule** aParentRule) { return Rule::GetParentRule(aParentRule); } /* virtual */ size_t -CharsetRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +CharsetRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mEncoding } @@ -499,17 +500,17 @@ ImportRule::GetStyleSheet(nsIDOMCSSStyle { NS_ENSURE_ARG_POINTER(aStyleSheet); NS_IF_ADDREF(*aStyleSheet = mChildSheet); return NS_OK; } /* virtual */ size_t -ImportRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +ImportRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mURLSpec // // The following members are not measured: @@ -761,17 +762,17 @@ GroupRule::DeleteRule(uint32_t aIndex) NS_ASSERTION(uint32_t(mRules.Count()) <= INT32_MAX, "Too many style rules!"); return sheet->DeleteRuleFromGroup(this, aIndex); } /* virtual */ size_t -GroupRule::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +GroupRule::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return mRules.SizeOfExcludingThis(Rule::SizeOfCOMArrayElementIncludingThis, aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mRuleCollection } @@ -965,17 +966,17 @@ MediaRule::UseForPresentation(nsPresCont { if (mMedia) { return mMedia->Matches(aPresContext, &aKey); } return true; } /* virtual */ size_t -MediaRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +MediaRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += GroupRule::SizeOfExcludingThis(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mMedia @@ -1195,17 +1196,17 @@ DocumentRule::UseForPresentation(nsPresC } DocumentRule::URL::~URL() { NS_CSS_DELETE_LIST_MEMBER(DocumentRule::URL, this, next); } /* virtual */ size_t -DocumentRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +DocumentRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += GroupRule::SizeOfExcludingThis(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mURLs @@ -1356,17 +1357,17 @@ NameSpaceRule::GetParentStyleSheet(nsIDO NS_IMETHODIMP NameSpaceRule::GetParentRule(nsIDOMCSSRule** aParentRule) { return Rule::GetParentRule(aParentRule); } /* virtual */ size_t -NameSpaceRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +NameSpaceRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mPrefix // - mURLSpec } @@ -1896,17 +1897,17 @@ nsCSSFontFaceRule::GetDesc(nsCSSFontDesc NS_PRECONDITION(aDescID > eCSSFontDesc_UNKNOWN && aDescID < eCSSFontDesc_COUNT, "aDescID out of range in nsCSSFontFaceRule::GetDesc"); aValue = mDecl.*nsCSSFontFaceStyleDecl::Fields[aDescID]; } /* virtual */ size_t -nsCSSFontFaceRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSFontFaceRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mDecl } @@ -2150,17 +2151,17 @@ nsCSSFontFeatureValuesRule::AddValueList gfxFontFeatureValueSet::FeatureValues &f = *mFeatureValues.AppendElement(); f.alternate = aVariantAlternate; f.valuelist.AppendElements(aValueList); } } size_t nsCSSFontFeatureValuesRule::SizeOfIncludingThis( - nsMallocSizeOfFun aMallocSizeOf) const + MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); } // ------------------------------------------- // nsCSSKeyframeStyleDeclaration // @@ -2419,17 +2420,17 @@ nsCSSKeyframeRule::ChangeDeclaration(css nsCSSStyleSheet* sheet = GetStyleSheet(); if (sheet) { sheet->SetModifiedByChildRule(); } } /* virtual */ size_t -nsCSSKeyframeRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSKeyframeRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mKeys // - mDeclaration // - mDOMDeclaration @@ -2634,17 +2635,17 @@ nsCSSKeyframesRule::FindRule(const nsASt nsCSSKeyframesRule::UseForPresentation(nsPresContext* aPresContext, nsMediaQueryResultCacheKey& aKey) { NS_ABORT_IF_FALSE(false, "should not be called"); return false; } /* virtual */ size_t -nsCSSKeyframesRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSKeyframesRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += GroupRule::SizeOfExcludingThis(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mName @@ -2865,17 +2866,17 @@ nsCSSPageRule::ChangeDeclaration(css::De nsCSSStyleSheet* sheet = GetStyleSheet(); if (sheet) { sheet->SetModifiedByChildRule(); } } /* virtual */ size_t -nsCSSPageRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSPageRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); } namespace mozilla { CSSSupportsRule::CSSSupportsRule(bool aConditionMet, const nsString& aCondition) @@ -3000,17 +3001,17 @@ CSSSupportsRule::GetConditionText(nsAStr NS_IMETHODIMP CSSSupportsRule::SetConditionText(const nsAString& aConditionText) { return NS_ERROR_NOT_IMPLEMENTED; } /* virtual */ size_t -CSSSupportsRule::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +CSSSupportsRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += css::GroupRule::SizeOfExcludingThis(aMallocSizeOf); n += mCondition.SizeOfExcludingThisIfUnshared(aMallocSizeOf); return n; } } // namespace mozilla
--- a/layout/style/nsCSSRules.h +++ b/layout/style/nsCSSRules.h @@ -6,16 +6,17 @@ /* rules in a CSS stylesheet other than style rules (e.g., @import rules) */ #ifndef nsCSSRules_h_ #define nsCSSRules_h_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/GroupRule.h" #include "mozilla/Preferences.h" #include "nsIDOMCSSConditionRule.h" #include "nsIDOMCSSFontFaceRule.h" #include "nsIDOMCSSFontFeatureValuesRule.h" #include "nsIDOMCSSGroupingRule.h" #include "nsIDOMCSSMediaRule.h" #include "nsIDOMCSSMozDocumentRule.h" @@ -86,17 +87,17 @@ public: // rest of GroupRule virtual bool UseForPresentation(nsPresContext* aPresContext, nsMediaQueryResultCacheKey& aKey); // @media rule methods nsresult SetMedia(nsMediaList* aMedia); - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE; protected: void AppendConditionText(nsAString& aOutput); nsRefPtr<nsMediaList> mMedia; }; @@ -164,17 +165,17 @@ public: , next(aOther.next ? new URL(*aOther.next) : nullptr) { } ~URL(); }; void SetURLs(URL *aURLs) { mURLs = aURLs; } - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE; protected: void AppendConditionText(nsAString& aOutput); nsAutoPtr<URL> mURLs; // linked list of |struct URL| above. }; @@ -254,17 +255,17 @@ public: NS_DECL_NSIDOMCSSRULE // nsIDOMCSSFontFaceRule interface NS_DECL_NSIDOMCSSFONTFACERULE void SetDesc(nsCSSFontDesc aDescID, nsCSSValue const & aValue); void GetDesc(nsCSSFontDesc aDescID, nsCSSValue & aValue); - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; protected: friend class nsCSSFontFaceStyleDecl; nsCSSFontFaceStyleDecl mDecl; }; // nsFontFaceRuleContainer - used for associating sheet type with // specific @font-face rules @@ -325,17 +326,17 @@ public: void AddValueList(int32_t aVariantAlternate, nsTArray<gfxFontFeatureValueSet::ValueList>& aValueList); const nsTArray<gfxFontFeatureValueSet::FeatureValues>& GetFeatureValues() { return mFeatureValues; } - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; static bool PrefEnabled() { return mozilla::Preferences::GetBool("layout.css.font-features.enabled"); } protected: nsTArray<nsString> mFamilyList; @@ -371,17 +372,17 @@ public: // nsIDOMCSSRule interface NS_DECL_NSIDOMCSSRULE // nsIDOMCSSCharsetRule methods NS_IMETHOD GetEncoding(nsAString& aEncoding) MOZ_OVERRIDE; NS_IMETHOD SetEncoding(const nsAString& aEncoding) MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: nsString mEncoding; }; } // namespace css } // namespace mozilla @@ -446,17 +447,17 @@ public: // nsIDOMMozCSSKeyframeRule interface NS_DECL_NSIDOMMOZCSSKEYFRAMERULE const nsTArray<float>& GetKeys() const { return mKeys; } mozilla::css::Declaration* Declaration() { return mDeclaration; } void ChangeDeclaration(mozilla::css::Declaration* aDeclaration); - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; void DoGetKeyText(nsAString &aKeyText) const; private: nsTArray<float> mKeys; nsAutoPtr<mozilla::css::Declaration> mDeclaration; // lazily created when needed: nsRefPtr<nsCSSKeyframeStyleDeclaration> mDOMDeclaration; @@ -500,17 +501,17 @@ public: NS_DECL_NSIDOMMOZCSSKEYFRAMESRULE // rest of GroupRule virtual bool UseForPresentation(nsPresContext* aPresContext, nsMediaQueryResultCacheKey& aKey) MOZ_OVERRIDE; const nsString& GetName() { return mName; } - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; private: uint32_t FindRuleIndexForKey(const nsAString& aKey); nsString mName; }; class nsCSSPageRule; @@ -574,17 +575,17 @@ public: NS_DECL_NSIDOMCSSPAGERULE mozilla::css::Declaration* Declaration() { return mDeclaration; } void ChangeDeclaration(mozilla::css::Declaration* aDeclaration); mozilla::css::ImportantRule* GetImportantRule(); - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; private: nsAutoPtr<mozilla::css::Declaration> mDeclaration; // lazily created when needed: nsRefPtr<nsCSSPageStyleDeclaration> mDOMDeclaration; nsRefPtr<mozilla::css::ImportantRule> mImportantRule; }; namespace mozilla { @@ -624,17 +625,17 @@ public: NS_DECL_NSIDOMCSSGROUPINGRULE // nsIDOMCSSConditionRule interface NS_DECL_NSIDOMCSSCONDITIONRULE // nsIDOMCSSSupportsRule interface NS_DECL_NSIDOMCSSSUPPORTSRULE - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; static bool PrefEnabled() { return Preferences::GetBool("layout.css.supports-rule.enabled"); } protected: bool mUseGroup;
--- a/layout/style/nsCSSStyleSheet.cpp +++ b/layout/style/nsCSSStyleSheet.cpp @@ -5,16 +5,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* representation of a CSS style sheet */ #include "nsCSSStyleSheet.h" #include "nsIAtom.h" #include "nsCSSRuleProcessor.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "mozilla/css/NameSpaceRule.h" #include "mozilla/css/GroupRule.h" #include "mozilla/css/ImportRule.h" #include "nsIMediaList.h" #include "nsIDocument.h" #include "nsPresContext.h" #include "nsGkAtoms.h" @@ -840,17 +841,17 @@ nsCSSStyleSheet::RebuildChildList(css::R (*builder->sheetSlot) = cssSheet; builder->SetParentLinks(*builder->sheetSlot); builder->sheetSlot = &(*builder->sheetSlot)->mNext; return true; } size_t -nsCSSStyleSheet::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSStyleSheet::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsCSSStyleSheet* s = this; while (s) { n += aMallocSizeOf(s); // Each inner can be shared by multiple sheets. So we only count the inner // if this sheet is the first one in the list of those sharing it. As a @@ -982,17 +983,17 @@ nsCSSStyleSheetInner::CreateNamespaceMap NS_ENSURE_TRUE(mNameSpaceMap, NS_ERROR_OUT_OF_MEMORY); // Override the default namespace map behavior for the null prefix to // return the wildcard namespace instead of the null namespace. mNameSpaceMap->AddPrefix(nullptr, kNameSpaceID_Unknown); return NS_OK; } size_t -nsCSSStyleSheetInner::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSStyleSheetInner::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mOrderedRules.SizeOfExcludingThis(css::Rule::SizeOfCOMArrayElementIncludingThis, aMallocSizeOf); n += mFirstChild ? mFirstChild->SizeOfIncludingThis(aMallocSizeOf) : 0; // Measurement of the following members may be added later if DMD finds it is // worthwhile:
--- a/layout/style/nsCSSStyleSheet.h +++ b/layout/style/nsCSSStyleSheet.h @@ -5,16 +5,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* representation of a CSS style sheet */ #ifndef nsCSSStyleSheet_h_ #define nsCSSStyleSheet_h_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nscore.h" #include "nsCOMPtr.h" #include "nsAutoPtr.h" #include "nsIStyleSheet.h" #include "nsIDOMCSSStyleSheet.h" #include "nsICSSLoaderObserver.h" @@ -61,17 +62,17 @@ private: void AddSheet(nsCSSStyleSheet* aSheet); void RemoveSheet(nsCSSStyleSheet* aSheet); void RebuildNameSpaces(); // Create a new namespace map nsresult CreateNamespaceMap(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsAutoTArray<nsCSSStyleSheet*, 8> mSheets; nsCOMPtr<nsIURI> mSheetURI; // for error reports, etc. nsCOMPtr<nsIURI> mOriginalSheetURI; // for GetHref. Can be null. nsCOMPtr<nsIURI> mBaseURI; // for resolving relative URIs nsCOMPtr<nsIPrincipal> mPrincipal; nsCOMArray<mozilla::css::Rule> mOrderedRules; nsAutoPtr<nsXMLNameSpaceMap> mNameSpaceMap; @@ -238,17 +239,17 @@ public: // nsIDOMCSSStyleSheet interface NS_DECL_NSIDOMCSSSTYLESHEET // Function used as a callback to rebuild our inner's child sheet // list after we clone a unique inner for ourselves. static bool RebuildChildList(mozilla::css::Rule* aRule, void* aBuilder); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const MOZ_OVERRIDE; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE; // Get this style sheet's CORS mode mozilla::CORSMode GetCORSMode() const { return mInner->mCORSMode; } mozilla::dom::Element* GetScopeElement() const { return mScopeElement; } void SetScopeElement(mozilla::dom::Element* aScopeElement) { mScopeElement = aScopeElement;
--- a/layout/style/nsCSSValue.cpp +++ b/layout/style/nsCSSValue.cpp @@ -11,16 +11,17 @@ #include "imgIRequest.h" #include "nsIDocument.h" #include "nsIPrincipal.h" #include "nsCSSProps.h" #include "nsContentUtils.h" #include "nsStyleUtil.h" #include "CSSCalc.h" #include "nsNetUtil.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/ImageLoader.h" #include "mozilla/Likely.h" namespace css = mozilla::css; nsCSSValue::nsCSSValue(int32_t aValue, nsCSSUnit aUnit) : mUnit(aUnit) { @@ -1230,17 +1231,17 @@ nsCSSValue::AppendToString(nsCSSProperty case eCSSUnit_Kilohertz: aResult.AppendLiteral("kHz"); break; case eCSSUnit_Seconds: aResult.Append(PRUnichar('s')); break; case eCSSUnit_Milliseconds: aResult.AppendLiteral("ms"); break; } } size_t -nsCSSValue::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValue::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; switch (GetUnit()) { // No value: nothing extra to measure. case eCSSUnit_Null: case eCSSUnit_Auto: case eCSSUnit_Inherit: @@ -1431,30 +1432,30 @@ nsCSSValueList::operator==(const nsCSSVa for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) { if (p1->mValue != p2->mValue) return false; } return !p1 && !p2; // true if same length, false otherwise } size_t -nsCSSValueList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValueList::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsCSSValueList* v = this; while (v) { n += aMallocSizeOf(v); n += v->mValue.SizeOfExcludingThis(aMallocSizeOf); v = v->mNext; } return n; } size_t -nsCSSValueList_heap::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValueList_heap::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mValue.SizeOfExcludingThis(aMallocSizeOf); n += mNext ? mNext->SizeOfIncludingThis(aMallocSizeOf) : 0; return n; } // --- nsCSSRect ----------------- @@ -1517,17 +1518,17 @@ void nsCSSRect::SetAllSidesTo(const nsCS { mTop = aValue; mRight = aValue; mBottom = aValue; mLeft = aValue; } size_t -nsCSSRect_heap::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSRect_heap::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mTop .SizeOfExcludingThis(aMallocSizeOf); n += mRight .SizeOfExcludingThis(aMallocSizeOf); n += mBottom.SizeOfExcludingThis(aMallocSizeOf); n += mLeft .SizeOfExcludingThis(aMallocSizeOf); return n; } @@ -1552,26 +1553,26 @@ nsCSSValuePair::AppendToString(nsCSSProp mXValue.AppendToString(aProperty, aResult); if (mYValue.GetUnit() != eCSSUnit_Null) { aResult.Append(PRUnichar(' ')); mYValue.AppendToString(aProperty, aResult); } } size_t -nsCSSValuePair::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValuePair::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; n += mXValue.SizeOfExcludingThis(aMallocSizeOf); n += mYValue.SizeOfExcludingThis(aMallocSizeOf); return n; } size_t -nsCSSValuePair_heap::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValuePair_heap::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mXValue.SizeOfExcludingThis(aMallocSizeOf); n += mYValue.SizeOfExcludingThis(aMallocSizeOf); return n; } // --- nsCSSValueTriplet ----------------- @@ -1587,17 +1588,17 @@ nsCSSValueTriplet::AppendToString(nsCSSP if (mZValue.GetUnit() != eCSSUnit_Null) { aResult.Append(PRUnichar(' ')); mZValue.AppendToString(aProperty, aResult); } } } size_t -nsCSSValueTriplet_heap::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValueTriplet_heap::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mXValue.SizeOfExcludingThis(aMallocSizeOf); n += mYValue.SizeOfExcludingThis(aMallocSizeOf); n += mZValue.SizeOfExcludingThis(aMallocSizeOf); return n; } @@ -1660,41 +1661,41 @@ nsCSSValuePairList::operator==(const nsC if (p1->mXValue != p2->mXValue || p1->mYValue != p2->mYValue) return false; } return !p1 && !p2; // true if same length, false otherwise } size_t -nsCSSValuePairList::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValuePairList::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; const nsCSSValuePairList* v = this; while (v) { n += aMallocSizeOf(v); n += v->mXValue.SizeOfExcludingThis(aMallocSizeOf); n += v->mYValue.SizeOfExcludingThis(aMallocSizeOf); v = v->mNext; } return n; } size_t -nsCSSValuePairList_heap::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValuePairList_heap::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mXValue.SizeOfExcludingThis(aMallocSizeOf); n += mYValue.SizeOfExcludingThis(aMallocSizeOf); n += mNext ? mNext->SizeOfIncludingThis(aMallocSizeOf) : 0; return n; } size_t -nsCSSValue::Array::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValue::Array::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); for (size_t i = 0; i < mCount; i++) { n += mArray[i].SizeOfExcludingThis(aMallocSizeOf); } return n; } @@ -1771,17 +1772,17 @@ css::URLValue::GetURI() const nullptr, mURI); newURI.swap(mURI); } return mURI; } size_t -css::URLValue::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +css::URLValue::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); // This string is unshared. n += mString->SizeOfIncludingThisMustBeUnshared(aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: @@ -1862,17 +1863,17 @@ nsCSSValueGradientStop::nsCSSValueGradie } nsCSSValueGradientStop::~nsCSSValueGradientStop() { MOZ_COUNT_DTOR(nsCSSValueGradientStop); } size_t -nsCSSValueGradientStop::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValueGradientStop::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = 0; n += mLocation.SizeOfExcludingThis(aMallocSizeOf); n += mColor .SizeOfExcludingThis(aMallocSizeOf); return n; } nsCSSValueGradient::nsCSSValueGradient(bool aIsRadial, @@ -1884,17 +1885,17 @@ nsCSSValueGradient::nsCSSValueGradient(b mBgPos(eCSSUnit_None), mAngle(eCSSUnit_None) { mRadialValues[0].SetNoneValue(); mRadialValues[1].SetNoneValue(); } size_t -nsCSSValueGradient::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsCSSValueGradient::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); n += mBgPos.SizeOfExcludingThis(aMallocSizeOf); n += mAngle.SizeOfExcludingThis(aMallocSizeOf); n += mRadialValues[0].SizeOfExcludingThis(aMallocSizeOf); n += mRadialValues[1].SizeOfExcludingThis(aMallocSizeOf); n += mStops.SizeOfExcludingThis(aMallocSizeOf); for (uint32_t i = 0; i < mStops.Length(); i++) {
--- a/layout/style/nsCSSValue.h +++ b/layout/style/nsCSSValue.h @@ -5,16 +5,17 @@ /* representation of simple property values within CSS declarations */ #ifndef nsCSSValue_h___ #define nsCSSValue_h___ #include "mozilla/Attributes.h" #include "mozilla/FloatingPoint.h" +#include "mozilla/MemoryReporting.h" #include "nsCOMPtr.h" #include "nsCRTGlue.h" #include "nsCSSKeywords.h" #include "nsCSSProperty.h" #include "nsColor.h" #include "nsCoord.h" #include "nsRefPtrHashtable.h" @@ -87,17 +88,17 @@ struct URLValue { // URIEquals only compares URIs and principals (unlike operator==, which // also compares the original strings). URIEquals also assumes that the // mURI member of both URL objects is non-null. Do NOT call this method // unless you're sure this is the case. bool URIEquals(const URLValue& aOther) const; nsIURI* GetURI() const; - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: // If mURIResolved is false, mURI stores the base URI. // If mURIResolved is true, mURI stores the URI we resolve to; this may be // null if the URI is invalid. mutable nsCOMPtr<nsIURI> mURI; public: nsStringBuffer* mString; // Could use nsRefPtr, but it'd add useless @@ -513,17 +514,17 @@ public: // Checks if this is a function value with the specified function id. bool EqualsFunction(nsCSSKeyword aFunctionId) const; // Returns an already addrefed buffer. Can return null on allocation // failure. static already_AddRefed<nsStringBuffer> BufferFromString(const nsString& aValue); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: static const PRUnichar* GetBufferValue(nsStringBuffer* aBuffer) { return static_cast<PRUnichar*>(aBuffer->Data()); } protected: nsCSSUnit mUnit; @@ -638,17 +639,17 @@ private: ~Array() { MOZ_COUNT_DTOR(nsCSSValue::Array); CSSVALUE_LIST_FOR_EXTRA_VALUES(val) { val->~nsCSSValue(); } } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; #undef CSSVALUE_LIST_FOR_EXTRA_VALUES private: Array(const Array& aOther) MOZ_DELETE; Array& operator=(const Array& aOther) MOZ_DELETE; }; @@ -660,17 +661,17 @@ struct nsCSSValueList { nsCSSValueList* Clone() const; // makes a deep copy void CloneInto(nsCSSValueList* aList) const; // makes a deep copy into aList void AppendToString(nsCSSProperty aProperty, nsAString& aResult) const; bool operator==(nsCSSValueList const& aOther) const; bool operator!=(const nsCSSValueList& aOther) const { return !(*this == aOther); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsCSSValue mValue; nsCSSValueList* mNext; private: nsCSSValueList(const nsCSSValueList& aCopy) // makes a shallow copy : mValue(aCopy.mValue), mNext(nullptr) { @@ -679,17 +680,17 @@ private: }; // nsCSSValueList_heap differs from nsCSSValueList only in being // refcounted. It should not be necessary to use this class directly; // it's an implementation detail of nsCSSValue. struct nsCSSValueList_heap : public nsCSSValueList { NS_INLINE_DECL_REFCOUNTING(nsCSSValueList_heap) - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; }; // This has to be here so that the relationship between nsCSSValueList // and nsCSSValueList_heap is visible. inline nsCSSValueList* nsCSSValue::GetListValue() { if (mUnit == eCSSUnit_List) @@ -766,17 +767,17 @@ struct nsCSSRect { }; // nsCSSRect_heap differs from nsCSSRect only in being // refcounted. It should not be necessary to use this class directly; // it's an implementation detail of nsCSSValue. struct nsCSSRect_heap : public nsCSSRect { NS_INLINE_DECL_REFCOUNTING(nsCSSRect_heap) - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; }; // This has to be here so that the relationship between nsCSSRect // and nsCSSRect_heap is visible. inline nsCSSRect& nsCSSValue::GetRectValue() { NS_ABORT_IF_FALSE(mUnit == eCSSUnit_Rect, "not a rect value"); @@ -842,34 +843,34 @@ struct nsCSSValuePair { bool HasValue() const { return mXValue.GetUnit() != eCSSUnit_Null || mYValue.GetUnit() != eCSSUnit_Null; } void AppendToString(nsCSSProperty aProperty, nsAString& aResult) const; - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsCSSValue mXValue; nsCSSValue mYValue; }; // nsCSSValuePair_heap differs from nsCSSValuePair only in being // refcounted. It should not be necessary to use this class directly; // it's an implementation detail of nsCSSValue. struct nsCSSValuePair_heap : public nsCSSValuePair { // forward constructor nsCSSValuePair_heap(const nsCSSValue& aXValue, const nsCSSValue& aYValue) : nsCSSValuePair(aXValue, aYValue) {} NS_INLINE_DECL_REFCOUNTING(nsCSSValuePair_heap) - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; }; struct nsCSSValueTriplet { nsCSSValueTriplet() { MOZ_COUNT_CTOR(nsCSSValueTriplet); } nsCSSValueTriplet(nsCSSUnit aUnit) @@ -943,17 +944,17 @@ struct nsCSSValueTriplet { struct nsCSSValueTriplet_heap : public nsCSSValueTriplet { // forward constructor nsCSSValueTriplet_heap(const nsCSSValue& aXValue, const nsCSSValue& aYValue, const nsCSSValue& aZValue) : nsCSSValueTriplet(aXValue, aYValue, aZValue) {} NS_INLINE_DECL_REFCOUNTING(nsCSSValueTriplet_heap) - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; }; // This has to be here so that the relationship between nsCSSValuePair // and nsCSSValuePair_heap is visible. inline nsCSSValuePair& nsCSSValue::GetPairValue() { NS_ABORT_IF_FALSE(mUnit == eCSSUnit_Pair, "not a pair value"); @@ -988,17 +989,17 @@ struct nsCSSValuePairList { nsCSSValuePairList* Clone() const; // makes a deep copy void AppendToString(nsCSSProperty aProperty, nsAString& aResult) const; bool operator==(const nsCSSValuePairList& aOther) const; bool operator!=(const nsCSSValuePairList& aOther) const { return !(*this == aOther); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsCSSValue mXValue; nsCSSValue mYValue; nsCSSValuePairList* mNext; private: nsCSSValuePairList(const nsCSSValuePairList& aCopy) // makes a shallow copy : mXValue(aCopy.mXValue), mYValue(aCopy.mYValue), mNext(nullptr) @@ -1008,17 +1009,17 @@ private: }; // nsCSSValuePairList_heap differs from nsCSSValuePairList only in being // refcounted. It should not be necessary to use this class directly; // it's an implementation detail of nsCSSValue. struct nsCSSValuePairList_heap : public nsCSSValuePairList { NS_INLINE_DECL_REFCOUNTING(nsCSSValuePairList_heap) - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; }; // This has to be here so that the relationship between nsCSSValuePairList // and nsCSSValuePairList_heap is visible. inline nsCSSValuePairList* nsCSSValue::GetPairListValue() { if (mUnit == eCSSUnit_PairList) @@ -1057,17 +1058,17 @@ public: mColor == aOther.mColor); } bool operator!=(const nsCSSValueGradientStop& aOther) const { return !(*this == aOther); } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; }; struct nsCSSValueGradient { nsCSSValueGradient(bool aIsRadial, bool aIsRepeating); // true if gradient is radial, false if it is linear bool mIsRadial; bool mIsRepeating; @@ -1117,17 +1118,17 @@ public: bool operator!=(const nsCSSValueGradient& aOther) const { return !(*this == aOther); } NS_INLINE_DECL_REFCOUNTING(nsCSSValueGradient) - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; private: nsCSSValueGradient(const nsCSSValueGradient& aOther) MOZ_DELETE; nsCSSValueGradient& operator=(const nsCSSValueGradient& aOther) MOZ_DELETE; }; struct nsCSSCornerSizes { nsCSSCornerSizes(void);
--- a/layout/style/nsHTMLCSSStyleSheet.cpp +++ b/layout/style/nsHTMLCSSStyleSheet.cpp @@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * style sheet and style rule processor representing style attributes */ #include "nsHTMLCSSStyleSheet.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/StyleRule.h" #include "nsIStyleRuleProcessor.h" #include "nsPresContext.h" #include "nsIDocument.h" #include "nsCOMPtr.h" #include "nsRuleWalker.h" #include "nsRuleProcessorData.h" #include "mozilla/dom/Element.h" @@ -128,23 +129,23 @@ nsHTMLCSSStyleSheet::HasAttributeDepende /* virtual */ bool nsHTMLCSSStyleSheet::MediumFeaturesChanged(nsPresContext* aPresContext) { return false; } /* virtual */ size_t -nsHTMLCSSStyleSheet::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsHTMLCSSStyleSheet::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return 0; } /* virtual */ size_t -nsHTMLCSSStyleSheet::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsHTMLCSSStyleSheet::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } void nsHTMLCSSStyleSheet::CacheStyleAttr(const nsAString& aSerialized, MiscContainer* aValue) {
--- a/layout/style/nsHTMLCSSStyleSheet.h +++ b/layout/style/nsHTMLCSSStyleSheet.h @@ -6,16 +6,17 @@ /* * style sheet and style rule processor representing style attributes */ #ifndef nsHTMLCSSStyleSheet_h_ #define nsHTMLCSSStyleSheet_h_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsCOMPtr.h" #include "nsDataHashtable.h" #include "nsIStyleSheet.h" #include "nsIStyleRuleProcessor.h" struct MiscContainer; @@ -34,19 +35,19 @@ public: #ifdef MOZ_XUL virtual void RulesMatching(XULTreeRuleProcessorData* aData) MOZ_OVERRIDE; #endif virtual nsRestyleHint HasStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool HasDocumentStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual nsRestyleHint HasAttributeDependentStyle(AttributeRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool MediumFeaturesChanged(nsPresContext* aPresContext) MOZ_OVERRIDE; - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; void CacheStyleAttr(const nsAString& aSerialized, MiscContainer* aValue); void EvictStyleAttr(const nsAString& aSerialized, MiscContainer* aValue); MiscContainer* LookupStyleAttr(const nsAString& aSerialized); private: nsHTMLCSSStyleSheet(const nsHTMLCSSStyleSheet& aCopy) MOZ_DELETE;
--- a/layout/style/nsHTMLStyleSheet.cpp +++ b/layout/style/nsHTMLStyleSheet.cpp @@ -25,16 +25,17 @@ #include "nsIDocument.h" #include "nsIPresShell.h" #include "nsStyleConsts.h" #include "nsRuleWalker.h" #include "nsRuleData.h" #include "nsError.h" #include "nsRuleProcessorData.h" #include "nsCSSRuleProcessor.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Element.h" #include "nsCSSFrameConstructor.h" #include "nsHashKeys.h" using namespace mozilla; using namespace mozilla::dom; NS_IMPL_ISUPPORTS1(nsHTMLStyleSheet::HTMLColorRule, nsIStyleRule) @@ -367,23 +368,23 @@ nsHTMLStyleSheet::HasAttributeDependentS /* virtual */ bool nsHTMLStyleSheet::MediumFeaturesChanged(nsPresContext* aPresContext) { return false; } /* virtual */ size_t -nsHTMLStyleSheet::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsHTMLStyleSheet::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return 0; // nsHTMLStyleSheets are charged to the DOM, not layout } /* virtual */ size_t -nsHTMLStyleSheet::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsHTMLStyleSheet::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return 0; // nsHTMLStyleSheets are charged to the DOM, not layout } /* virtual */ void nsHTMLStyleSheet::RulesMatching(PseudoElementRuleProcessorData* aData) { } @@ -522,28 +523,28 @@ nsHTMLStyleSheet::LangRuleFor(const nsSt NS_ASSERTION(false, "out of memory"); return nullptr; } return entry->mRule; } static size_t SizeOfAttributesEntryExcludingThis(PLDHashEntryHdr* aEntry, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aArg) { NS_PRECONDITION(aEntry, "The entry should not be null!"); MappedAttrTableEntry* entry = static_cast<MappedAttrTableEntry*>(aEntry); NS_ASSERTION(entry->mAttributes, "entry->mAttributes should not be null!"); return entry->mAttributes->SizeOfIncludingThis(aMallocSizeOf); } size_t -nsHTMLStyleSheet::DOMSizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsHTMLStyleSheet::DOMSizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); if (mMappedAttrTable.ops) { n += PL_DHashTableSizeOfExcludingThis(&mMappedAttrTable, SizeOfAttributesEntryExcludingThis, aMallocSizeOf); }
--- a/layout/style/nsHTMLStyleSheet.h +++ b/layout/style/nsHTMLStyleSheet.h @@ -15,16 +15,17 @@ #include "nsAutoPtr.h" #include "nsColor.h" #include "nsCOMPtr.h" #include "nsIStyleRule.h" #include "nsIStyleRuleProcessor.h" #include "nsIStyleSheet.h" #include "pldhash.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsString.h" class nsMappedAttributes; class nsHTMLStyleSheet MOZ_FINAL : public nsIStyleRuleProcessor { public: nsHTMLStyleSheet(nsIDocument* aDocument); @@ -40,21 +41,21 @@ public: #ifdef MOZ_XUL virtual void RulesMatching(XULTreeRuleProcessorData* aData) MOZ_OVERRIDE; #endif virtual nsRestyleHint HasStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool HasDocumentStateDependentStyle(StateRuleProcessorData* aData) MOZ_OVERRIDE; virtual nsRestyleHint HasAttributeDependentStyle(AttributeRuleProcessorData* aData) MOZ_OVERRIDE; virtual bool MediumFeaturesChanged(nsPresContext* aPresContext) MOZ_OVERRIDE; - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - size_t DOMSizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t DOMSizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; void Reset(); nsresult SetLinkColor(nscolor aColor); nsresult SetActiveLinkColor(nscolor aColor); nsresult SetVisitedLinkColor(nscolor aColor); // Mapped Attribute management methods already_AddRefed<nsMappedAttributes>
--- a/layout/style/nsIStyleRuleProcessor.h +++ b/layout/style/nsIStyleRuleProcessor.h @@ -7,16 +7,17 @@ * internal abstract interface for containers (roughly origins within * the CSS cascade) that provide style rules matching an element or * pseudo-element */ #ifndef nsIStyleRuleProcessor_h___ #define nsIStyleRuleProcessor_h___ +#include "mozilla/MemoryReporting.h" #include "nsISupports.h" #include "nsChangeHint.h" struct RuleProcessorData; struct ElementRuleProcessorData; struct PseudoElementRuleProcessorData; struct AnonBoxRuleProcessorData; #ifdef MOZ_XUL @@ -120,16 +121,16 @@ public: * processor's rules have changed (e.g., because of media queries). */ virtual bool MediumFeaturesChanged(nsPresContext* aPresContext) = 0; /** * Report the size of this style rule processor to about:memory. A * processor may return 0. */ - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun mallocSizeOf) const = 0; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf) const = 0; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const = 0; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsIStyleRuleProcessor, NS_ISTYLE_RULE_PROCESSOR_IID) #endif /* nsIStyleRuleProcessor_h___ */
--- a/layout/style/nsIStyleSheet.h +++ b/layout/style/nsIStyleSheet.h @@ -6,16 +6,17 @@ /* * interface representing a collection of style data attached to a * document, which may be or be combined into a style rule processor */ #ifndef nsIStyleSheet_h___ #define nsIStyleSheet_h___ +#include "mozilla/MemoryReporting.h" #include <stdio.h> #include "nsISupports.h" class nsString; class nsIURI; class nsIDocument; // IID for the nsIStyleSheet interface @@ -73,14 +74,14 @@ public: virtual nsIStyleSheet* GetParentSheet() const = 0; // may be null virtual nsIDocument* GetOwningDocument() const = 0; // may be null virtual void SetOwningDocument(nsIDocument* aDocument) = 0; #ifdef DEBUG virtual void List(FILE* out = stdout, int32_t aIndent = 0) const = 0; #endif - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const = 0; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsIStyleSheet, NS_ISTYLE_SHEET_IID) #endif /* nsIStyleSheet_h___ */
--- a/layout/style/nsLayoutStylesheetCache.cpp +++ b/layout/style/nsLayoutStylesheetCache.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsLayoutStylesheetCache.h" #include "nsAppDirectoryServiceDefs.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/css/Loader.h" #include "nsIFile.h" #include "nsIMemoryReporter.h" #include "nsNetUtil.h" #include "nsIObserverService.h" #include "nsServiceManagerUtils.h" #include "nsIXULRuntime.h" #include "nsCSSStyleSheet.h" @@ -152,28 +153,28 @@ nsLayoutStylesheetCache::FullScreenOverr void nsLayoutStylesheetCache::Shutdown() { NS_IF_RELEASE(gCSSLoader); NS_IF_RELEASE(gStyleCache); } size_t -nsLayoutStylesheetCache::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsLayoutStylesheetCache::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { if (!nsLayoutStylesheetCache::gStyleCache) { return 0; } return nsLayoutStylesheetCache::gStyleCache-> SizeOfIncludingThisHelper(aMallocSizeOf); } size_t -nsLayoutStylesheetCache::SizeOfIncludingThisHelper(nsMallocSizeOfFun aMallocSizeOf) const +nsLayoutStylesheetCache::SizeOfIncludingThisHelper(mozilla::MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); #define MEASURE(s) n += s ? s->SizeOfIncludingThis(aMallocSizeOf) : 0; MEASURE(mScrollbarsSheet); MEASURE(mFormsSheet); MEASURE(mUserContentSheet);
--- a/layout/style/nsLayoutStylesheetCache.h +++ b/layout/style/nsLayoutStylesheetCache.h @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsLayoutStylesheetCache_h__ #define nsLayoutStylesheetCache_h__ #include "nsIObserver.h" #include "nsAutoPtr.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" class nsIFile; class nsCSSStyleSheet; class nsIURI; namespace mozilla { namespace css { class Loader; @@ -33,29 +34,29 @@ class nsLayoutStylesheetCache MOZ_FINAL static nsCSSStyleSheet* UserContentSheet(); static nsCSSStyleSheet* UserChromeSheet(); static nsCSSStyleSheet* UASheet(); static nsCSSStyleSheet* QuirkSheet(); static nsCSSStyleSheet* FullScreenOverrideSheet(); static void Shutdown(); - static size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + static size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: nsLayoutStylesheetCache(); ~nsLayoutStylesheetCache(); static void EnsureGlobal(); void InitFromProfile(); static void LoadSheetFile(nsIFile* aFile, nsRefPtr<nsCSSStyleSheet> &aSheet); static void LoadSheet(nsIURI* aURI, nsRefPtr<nsCSSStyleSheet> &aSheet, bool aEnableUnsafeRules); - size_t SizeOfIncludingThisHelper(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThisHelper(mozilla::MallocSizeOf aMallocSizeOf) const; static nsLayoutStylesheetCache* gStyleCache; static mozilla::css::Loader* gCSSLoader; nsRefPtr<nsCSSStyleSheet> mScrollbarsSheet; nsRefPtr<nsCSSStyleSheet> mFormsSheet; nsRefPtr<nsCSSStyleSheet> mUserContentSheet; nsRefPtr<nsCSSStyleSheet> mUserChromeSheet; nsRefPtr<nsCSSStyleSheet> mUASheet;
--- a/layout/style/nsStyleSet.cpp +++ b/layout/style/nsStyleSet.cpp @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * the container for the style sheets that apply to a presentation, and * the internal API that the style system exposes for creating (and * potentially re-creating) style contexts */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "nsStyleSet.h" #include "nsCSSStyleSheet.h" #include "nsIDocumentInlines.h" #include "nsRuleWalker.h" #include "nsStyleContext.h" #include "mozilla/css/StyleRule.h" @@ -114,17 +115,17 @@ nsStyleSet::nsStyleSet() mInReconstruct(false), mInitFontFeatureValuesLookup(true), mDirty(0), mUnusedRuleNodeCount(0) { } size_t -nsStyleSet::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsStyleSet::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = aMallocSizeOf(this); for (int i = 0; i < eSheetTypeCount; i++) { if (mRuleProcessors[i]) { n += mRuleProcessors[i]->SizeOfIncludingThis(aMallocSizeOf); } n += mSheets[i].SizeOfExcludingThis(nullptr, aMallocSizeOf);
--- a/layout/style/nsStyleSet.h +++ b/layout/style/nsStyleSet.h @@ -8,16 +8,17 @@ * the internal API that the style system exposes for creating (and * potentially re-creating) style contexts */ #ifndef nsStyleSet_h_ #define nsStyleSet_h_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsIStyleRuleProcessor.h" #include "nsCSSStyleSheet.h" #include "nsBindingManager.h" #include "nsRuleNode.h" #include "nsTArray.h" #include "nsCOMArray.h" #include "nsAutoPtr.h" @@ -56,17 +57,17 @@ class nsInitialStyleRule MOZ_FINAL : pub // then handed off to the PresShell. Only the PresShell should delete a // style set. class nsStyleSet { public: nsStyleSet(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; void Init(nsPresContext *aPresContext); nsRuleNode* GetRuleTree() { return mRuleTree; } // enable / disable the Quirk style sheet void EnableQuirkStyleSheet(bool aEnable);
--- a/layout/style/nsTransitionManager.cpp +++ b/layout/style/nsTransitionManager.cpp @@ -6,16 +6,17 @@ /* Code to start and animate CSS transitions. */ #include "nsTransitionManager.h" #include "nsAnimationManager.h" #include "nsIContent.h" #include "nsStyleContext.h" #include "nsCSSProps.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/TimeStamp.h" #include "nsRefreshDriver.h" #include "nsRuleProcessorData.h" #include "nsIStyleRule.h" #include "nsRuleWalker.h" #include "nsRuleData.h" #include "gfxColor.h" #include "nsCSSPropertySet.h" @@ -959,23 +960,23 @@ nsTransitionManager::RulesMatching(AnonB #ifdef MOZ_XUL /* virtual */ void nsTransitionManager::RulesMatching(XULTreeRuleProcessorData* aData) { } #endif /* virtual */ size_t -nsTransitionManager::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsTransitionManager::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { return CommonAnimationManager::SizeOfExcludingThis(aMallocSizeOf); } /* virtual */ size_t -nsTransitionManager::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsTransitionManager::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); } struct TransitionEventInfo { nsCOMPtr<nsIContent> mElement; nsTransitionEvent mEvent;
--- a/layout/style/nsTransitionManager.h +++ b/layout/style/nsTransitionManager.h @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* Code to start and animate CSS transitions. */ #ifndef nsTransitionManager_h_ #define nsTransitionManager_h_ #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "AnimationCommon.h" #include "nsCSSPseudoElements.h" class nsStyleContext; class nsPresContext; class nsCSSPropertySet; struct nsTransition; struct ElementDependentRuleProcessorData; @@ -165,19 +166,19 @@ public: // nsIStyleRuleProcessor (parts) virtual void RulesMatching(ElementRuleProcessorData* aData) MOZ_OVERRIDE; virtual void RulesMatching(PseudoElementRuleProcessorData* aData) MOZ_OVERRIDE; virtual void RulesMatching(AnonBoxRuleProcessorData* aData) MOZ_OVERRIDE; #ifdef MOZ_XUL virtual void RulesMatching(XULTreeRuleProcessorData* aData) MOZ_OVERRIDE; #endif - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const MOZ_MUST_OVERRIDE MOZ_OVERRIDE; // nsARefreshObserver virtual void WillRefresh(mozilla::TimeStamp aTime) MOZ_OVERRIDE; void FlushTransitions(FlushFlags aFlags); // Performs a 'mini-flush' to make styles from throttled transitions
--- a/memory/replace/dmd/DMD.cpp +++ b/memory/replace/dmd/DMD.cpp @@ -29,16 +29,17 @@ #include "nsStackWalk.h" #include "js/HashTable.h" #include "js/Vector.h" #include "mozilla/Assertions.h" #include "mozilla/HashFunctions.h" #include "mozilla/Likely.h" +#include "mozilla/MemoryReporting.h" // MOZ_REPLACE_ONLY_MEMALIGN saves us from having to define // replace_{posix_memalign,aligned_alloc,valloc}. It requires defining // PAGE_SIZE. Nb: sysconf() is expensive, but it's only used for (the obsolete // and rarely used) valloc. #define MOZ_REPLACE_ONLY_MEMALIGN 1 #ifdef XP_WIN #define PAGE_SIZE GetPageSize() @@ -1987,17 +1988,17 @@ PrintSortedTraceAndFrameRecords(const Wr } } PrintSortedRecords(aWriter, aLocService, aStr, astr, frameRecordTable, aCategoryUsableSize, aTotalUsableSize); } // Note that, unlike most SizeOf* functions, this function does not take a -// |nsMallocSizeOfFun| argument. That's because those arguments are primarily +// |mozilla::MallocSizeOf| argument. That's because those arguments are primarily // to aid DMD track heap blocks... but DMD deliberately doesn't track heap // blocks it allocated for itself! // // SizeOfInternal should be called while you're holding the state lock and while // intercepts are blocked; SizeOf acquires the lock and blocks intercepts. static void SizeOfInternal(Sizes* aSizes)
--- a/modules/libpref/src/Preferences.cpp +++ b/modules/libpref/src/Preferences.cpp @@ -1,13 +1,14 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/Attributes.h" #include "mozilla/Util.h" #include "mozilla/HashFunctions.h" #include "nsXULAppAPI.h" @@ -159,17 +160,17 @@ static nsTArray<nsAutoPtr<CacheData> >* static nsRefPtrHashtable<ValueObserverHashKey, ValueObserver>* gObserverTable = nullptr; NS_MEMORY_REPORTER_MALLOC_SIZEOF_FUN(PreferencesMallocSizeOf) static size_t SizeOfObserverEntryExcludingThis(ValueObserverHashKey* aKey, const nsRefPtr<ValueObserver>& aData, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void*) { size_t n = 0; n += aKey->mPrefName.SizeOfExcludingThisIfUnshared(aMallocSizeOf); n += aData->mClosures.SizeOfExcludingThis(aMallocSizeOf); return n; }
--- a/modules/libpref/src/nsPrefBranch.h +++ b/modules/libpref/src/nsPrefBranch.h @@ -16,16 +16,17 @@ #include "nsVoidArray.h" #include "nsTArray.h" #include "nsWeakReference.h" #include "nsClassHashtable.h" #include "nsCRT.h" #include "prbit.h" #include "nsTraceRefcnt.h" #include "mozilla/HashFunctions.h" +#include "mozilla/MemoryReporting.h" class nsPrefBranch; class PrefCallback : public PLDHashEntryHdr { public: typedef PrefCallback* KeyType; typedef const PrefCallback* KeyTypePointer; @@ -182,17 +183,17 @@ public: virtual ~nsPrefBranch(); int32_t GetRootLength() { return mPrefRootLength; } nsresult RemoveObserverFromMap(const char *aDomain, nsISupports *aObserver); static nsresult NotifyObserver(const char *newpref, void *data); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); protected: nsPrefBranch() /* disallow use of this constructer */ { } nsresult GetDefaultFromPropertiesFile(const char *aPrefName, PRUnichar **return_buf); // As SetCharPref, but without any check on the length of |aValue| nsresult SetCharPrefInternal(const char *aPrefName, const char *aValue);
--- a/modules/libpref/src/prefapi.cpp +++ b/modules/libpref/src/prefapi.cpp @@ -21,16 +21,17 @@ #include "windows.h" #endif /* _WIN32 */ #include "plstr.h" #include "pldhash.h" #include "plbase64.h" #include "prlog.h" #include "prprf.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/PContent.h" #include "nsQuickSort.h" #include "nsString.h" #include "nsPrintfCString.h" #include "prlink.h" #ifdef XP_OS2 #define INCL_DOS @@ -802,17 +803,17 @@ nsresult pref_HashPref(const char *key, nsresult rv2 = pref_DoCallback(key); if (NS_FAILED(rv2)) rv = rv2; } return rv; } size_t -pref_SizeOfPrivateData(nsMallocSizeOfFun aMallocSizeOf) +pref_SizeOfPrivateData(MallocSizeOf aMallocSizeOf) { size_t n = PL_SizeOfArenaPoolExcludingPool(&gPrefNameArena, aMallocSizeOf); for (struct CallbackNode* node = gCallbacks; node; node = node->next) { n += aMallocSizeOf(node); n += aMallocSizeOf(node->domain); } return n; }
--- a/modules/libpref/src/prefapi_private_data.h +++ b/modules/libpref/src/prefapi_private_data.h @@ -1,15 +1,17 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* Data shared between prefapi.c and nsPref.cpp */ +#include "mozilla/MemoryReporting.h" + extern PLDHashTable gHashTable; extern bool gDirty; namespace mozilla { namespace dom { class PrefSetting; } } @@ -34,9 +36,9 @@ pref_SetPref(const mozilla::dom::PrefSet int pref_CompareStrings(const void *v1, const void *v2, void* unused); PrefHashEntry* pref_HashTableLookup(const void *key); void pref_GetPrefFromEntry(PrefHashEntry *aHashEntry, mozilla::dom::PrefSetting* aPref); size_t -pref_SizeOfPrivateData(nsMallocSizeOfFun aMallocSizeOf); +pref_SizeOfPrivateData(mozilla::MallocSizeOf aMallocSizeOf);
--- a/netwerk/base/src/nsSimpleURI.cpp +++ b/netwerk/base/src/nsSimpleURI.cpp @@ -16,16 +16,17 @@ #include "nsURLHelper.h" #include "nsNetCID.h" #include "nsIObjectInputStream.h" #include "nsIObjectOutputStream.h" #include "nsEscape.h" #include "nsError.h" #include "nsIProgrammingLanguage.h" #include "nsIIPCSerializableURI.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/ipc/URIUtils.h" using namespace mozilla::ipc; static NS_DEFINE_CID(kThisSimpleURIImplementationCID, NS_THIS_SIMPLEURI_IMPLEMENTATION_CID); static NS_DEFINE_CID(kSimpleURICID, NS_SIMPLEURI_CID); @@ -630,20 +631,20 @@ nsSimpleURI::SetMutable(bool value) return NS_OK; } //---------------------------------------------------------------------------- // nsSimpleURI::nsISizeOf //---------------------------------------------------------------------------- size_t -nsSimpleURI::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsSimpleURI::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return mScheme.SizeOfExcludingThisIfUnshared(aMallocSizeOf) + mPath.SizeOfExcludingThisIfUnshared(aMallocSizeOf) + mRef.SizeOfExcludingThisIfUnshared(aMallocSizeOf); } size_t -nsSimpleURI::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { +nsSimpleURI::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); }
--- a/netwerk/base/src/nsSimpleURI.h +++ b/netwerk/base/src/nsSimpleURI.h @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsSimpleURI_h__ #define nsSimpleURI_h__ +#include "mozilla/MemoryReporting.h" #include "nsIURL.h" #include "nsAgg.h" #include "nsISerializable.h" #include "nsString.h" #include "nsIClassInfo.h" #include "nsIMutable.h" #include "nsISizeOf.h" #include "nsIIPCSerializableURI.h" @@ -45,18 +46,18 @@ public: // nsISizeOf // Among the sub-classes that inherit (directly or indirectly) from // nsSimpleURI, measurement of the following members may be added later if // DMD finds it is worthwhile: // - nsJSURI: mBaseURI // - nsSimpleNestedURI: mInnerURI // - nsBlobURI: mPrincipal - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; protected: // enum used in a few places to specify how .ref attribute should be handled enum RefHandlingEnum { eIgnoreRef, eHonorRef };
--- a/netwerk/base/src/nsStandardURL.cpp +++ b/netwerk/base/src/nsStandardURL.cpp @@ -18,16 +18,17 @@ #include "nsIPrefService.h" #include "nsIPrefBranch.h" #include "nsIIDNService.h" #include "nsNetUtil.h" #include "prlog.h" #include "nsAutoPtr.h" #include "nsIProgrammingLanguage.h" #include "nsVoidArray.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/ipc/URIUtils.h" #include <algorithm> using namespace mozilla::ipc; static NS_DEFINE_CID(kThisImplCID, NS_THIS_STANDARDURL_IMPL_CID); static NS_DEFINE_CID(kStandardURLCID, NS_STANDARDURL_CID); @@ -3023,24 +3024,24 @@ nsStandardURL::GetClassIDNoAlloc(nsCID * return NS_OK; } //---------------------------------------------------------------------------- // nsStandardURL::nsISizeOf //---------------------------------------------------------------------------- size_t -nsStandardURL::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +nsStandardURL::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return mSpec.SizeOfExcludingThisIfUnshared(aMallocSizeOf) + mOriginCharset.SizeOfExcludingThisIfUnshared(aMallocSizeOf) + aMallocSizeOf(mHostA); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mParser // - mFile } size_t -nsStandardURL::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const { +nsStandardURL::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); }
--- a/netwerk/base/src/nsStandardURL.h +++ b/netwerk/base/src/nsStandardURL.h @@ -18,16 +18,17 @@ #include "nsIObserver.h" #include "nsIIOService.h" #include "nsCOMPtr.h" #include "nsURLHelper.h" #include "nsIClassInfo.h" #include "nsISizeOf.h" #include "prclist.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" #include "nsIIPCSerializableURI.h" #ifdef NS_BUILD_REFCNT_LOGGING #define DEBUG_DUMP_URLS_AT_SHUTDOWN #endif class nsIBinaryInputStream; class nsIBinaryOutputStream; @@ -53,18 +54,18 @@ public: NS_DECL_NSIFILEURL NS_DECL_NSISTANDARDURL NS_DECL_NSISERIALIZABLE NS_DECL_NSICLASSINFO NS_DECL_NSIMUTABLE NS_DECL_NSIIPCSERIALIZABLEURI // nsISizeOf - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; nsStandardURL(bool aSupportsFileURL = false); virtual ~nsStandardURL(); static void InitGlobalObjects(); static void ShutdownGlobalObjects(); public: /* internal -- HPUX compiler can't handle this being private */
--- a/netwerk/cache/nsDiskCacheBinding.cpp +++ b/netwerk/cache/nsDiskCacheBinding.cpp @@ -1,14 +1,15 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/MemoryReporting.h" #include "nsCache.h" #include <limits.h> #include "nscore.h" #include "nsDiskCacheBinding.h" #include "nsCacheService.h" @@ -367,17 +368,17 @@ nsDiskCacheBindery::ActiveBindings() bool activeBinding = false; PL_DHashTableEnumerate(&table, ActiveBinding, &activeBinding); return activeBinding; } struct AccumulatorArg { size_t mUsage; - nsMallocSizeOfFun mMallocSizeOf; + mozilla::MallocSizeOf mMallocSizeOf; }; PLDHashOperator AccumulateHeapUsage(PLDHashTable *table, PLDHashEntryHdr *hdr, uint32_t number, void *arg) { nsDiskCacheBinding *binding = ((HashTableEntry *)hdr)->mBinding; NS_ASSERTION(binding, "### disk cache binding = nsnull!"); @@ -403,17 +404,17 @@ AccumulateHeapUsage(PLDHashTable *table, return PL_DHASH_NEXT; } /** * SizeOfExcludingThis: return the amount of heap memory (bytes) being used by the bindery */ size_t -nsDiskCacheBindery::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsDiskCacheBindery::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) { NS_ASSERTION(initialized, "nsDiskCacheBindery not initialized"); if (!initialized) return 0; AccumulatorArg arg; arg.mUsage = 0; arg.mMallocSizeOf = aMallocSizeOf;
--- a/netwerk/cache/nsDiskCacheBinding.h +++ b/netwerk/cache/nsDiskCacheBinding.h @@ -3,16 +3,17 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _nsDiskCacheBinding_h_ #define _nsDiskCacheBinding_h_ +#include "mozilla/MemoryReporting.h" #include "nspr.h" #include "pldhash.h" #include "nsISupports.h" #include "nsCacheEntry.h" #include "nsDiskCacheMap.h" #include "nsDiskCacheStreams.h" @@ -100,17 +101,17 @@ public: nsDiskCacheBinding * CreateBinding(nsCacheEntry * entry, nsDiskCacheRecord * record); nsDiskCacheBinding * FindActiveBinding(uint32_t hashNumber); void RemoveBinding(nsDiskCacheBinding * binding); bool ActiveBindings(); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: nsresult AddBinding(nsDiskCacheBinding * binding); // member variables static PLDHashTableOps ops; PLDHashTable table; bool initialized;
--- a/netwerk/cache/nsDiskCacheBlockFile.cpp +++ b/netwerk/cache/nsDiskCacheBlockFile.cpp @@ -3,16 +3,17 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsCache.h" #include "nsDiskCache.h" #include "nsDiskCacheBlockFile.h" #include "mozilla/FileUtils.h" +#include "mozilla/MemoryReporting.h" #include <algorithm> using namespace mozilla; /****************************************************************************** * nsDiskCacheBlockFile - *****************************************************************************/ @@ -392,12 +393,12 @@ nsDiskCacheBlockFile::Write(int32_t offs #endif } if (PR_Seek(mFD, offset, PR_SEEK_SET) != offset) return false; return PR_Write(mFD, buf, amount) == amount; } size_t -nsDiskCacheBlockFile::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsDiskCacheBlockFile::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) { return aMallocSizeOf(mBitMap) + aMallocSizeOf(mFD); }
--- a/netwerk/cache/nsDiskCacheBlockFile.h +++ b/netwerk/cache/nsDiskCacheBlockFile.h @@ -2,16 +2,17 @@ /* vim: set sw=4 ts=8 et tw=80 : */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _nsDiskCacheBlockFile_h_ #define _nsDiskCacheBlockFile_h_ +#include "mozilla/MemoryReporting.h" #include "nsIFile.h" #include "nsDiskCache.h" /****************************************************************************** * nsDiskCacheBlockFile * * The structure of a cache block file is a 4096 bytes bit map, followed by * some number of blocks of mBlockSize. The creator of a @@ -40,17 +41,17 @@ public: */ nsresult Trim() { return nsDiskCache::Truncate(mFD, CalcBlockFileSize()); } nsresult DeallocateBlocks( int32_t startBlock, int32_t numBlocks); nsresult WriteBlocks( void * buffer, uint32_t size, int32_t numBlocks, int32_t * startBlock); nsresult ReadBlocks( void * buffer, int32_t startBlock, int32_t numBlocks, int32_t * bytesRead); - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: nsresult FlushBitMap(); int32_t AllocateBlocks( int32_t numBlocks); nsresult VerifyAllocation( int32_t startBlock, int32_t numBLocks); uint32_t CalcBlockFileSize(); bool Write(int32_t offset, const void *buf, int32_t amount);
--- a/netwerk/cache/nsDiskCacheDevice.cpp +++ b/netwerk/cache/nsDiskCacheDevice.cpp @@ -44,16 +44,17 @@ #include "nsReadableUtils.h" #include "nsIInputStream.h" #include "nsIOutputStream.h" #include "nsCRT.h" #include "nsCOMArray.h" #include "nsISimpleEnumerator.h" #include "nsThreadUtils.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Telemetry.h" static const char DISK_CACHE_DEVICE_ID[] = { "disk" }; using namespace mozilla; class nsDiskCacheDeviceDeactivateEntryEvent : public nsRunnable { public: nsDiskCacheDeviceDeactivateEntryEvent(nsDiskCacheDevice *device, @@ -1185,17 +1186,17 @@ nsDiskCacheDevice::SetMaxEntrySize(int32 // change and has no consequences for existing cache-entries if (maxSizeInKilobytes >= 0) mMaxEntrySize = maxSizeInKilobytes * 1024; else mMaxEntrySize = -1; } size_t -nsDiskCacheDevice::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsDiskCacheDevice::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t usage = aMallocSizeOf(this); usage += mCacheMap.SizeOfExcludingThis(aMallocSizeOf); usage += mBindery.SizeOfExcludingThis(aMallocSizeOf); return usage; }
--- a/netwerk/cache/nsDiskCacheDevice.h +++ b/netwerk/cache/nsDiskCacheDevice.h @@ -2,16 +2,17 @@ * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _nsDiskCacheDevice_h_ #define _nsDiskCacheDevice_h_ +#include "mozilla/MemoryReporting.h" #include "nsCacheDevice.h" #include "nsDiskCacheBinding.h" #include "nsDiskCacheBlockFile.h" #include "nsDiskCacheEntry.h" #include "nsIFile.h" #include "nsIObserver.h" #include "nsCOMArray.h" @@ -50,17 +51,17 @@ public: virtual nsresult OnDataSizeChange(nsCacheEntry * entry, int32_t deltaSize); virtual nsresult Visit(nsICacheVisitor * visitor); virtual nsresult EvictEntries(const char * clientID); bool EntryIsTooBig(int64_t entrySize); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); /** * Preference accessors */ void SetCacheParentDirectory(nsIFile * parentDir); void SetCapacity(uint32_t capacity); void SetMaxEntrySize(int32_t maxSizeInKilobytes);
--- a/netwerk/cache/nsDiskCacheMap.cpp +++ b/netwerk/cache/nsDiskCacheMap.cpp @@ -12,16 +12,17 @@ #include "nsCacheService.h" #include <string.h> #include "nsPrintfCString.h" #include "nsISerializable.h" #include "nsSerializationHelper.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Telemetry.h" #include "mozilla/VisualEventTracer.h" #include <algorithm> using namespace mozilla; /****************************************************************************** * nsDiskCacheMap @@ -1225,17 +1226,17 @@ nsDiskCacheMap::NotifyCapacityChange(uin int32_t maxRecordCount = std::min(int32_t(capacity), RECORD_COUNT_LIMIT); if (mMaxRecordCount < maxRecordCount) { // We can only grow mMaxRecordCount = maxRecordCount; } } size_t -nsDiskCacheMap::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsDiskCacheMap::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) { size_t usage = aMallocSizeOf(mRecordArray); usage += aMallocSizeOf(mBuffer); usage += aMallocSizeOf(mMapFD); usage += aMallocSizeOf(mCleanFD); usage += aMallocSizeOf(mCacheDirectory); usage += aMallocSizeOf(mCleanCacheTimer);
--- a/netwerk/cache/nsDiskCacheMap.h +++ b/netwerk/cache/nsDiskCacheMap.h @@ -2,16 +2,17 @@ /* vim:set ts=4 sw=4 sts=4 cin et: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _nsDiskCacheMap_h_ #define _nsDiskCacheMap_h_ +#include "mozilla/MemoryReporting.h" #include <limits.h> #include "prtypes.h" #include "prnetdb.h" #include "nsDebug.h" #include "nsError.h" #include "nsIFile.h" #include "nsITimer.h" @@ -480,17 +481,17 @@ public: // Round up to nearest K DecrementTotalSize(((blocks*blockSize) + 0x03FF) >> 10); } uint32_t TotalSize() { return mHeader.mDataSize; } int32_t EntryCount() { return mHeader.mEntryCount; } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: /** * Private methods */ nsresult OpenBlockFiles(nsDiskCache::CorruptCacheInfo * corruptInfo);
--- a/netwerk/cache/nsDiskCacheStreams.cpp +++ b/netwerk/cache/nsDiskCacheStreams.cpp @@ -7,16 +7,17 @@ #include "nsCache.h" #include "nsDiskCache.h" #include "nsDiskCacheDevice.h" #include "nsDiskCacheStreams.h" #include "nsCacheService.h" #include "mozilla/FileUtils.h" #include "nsThreadUtils.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Telemetry.h" #include "mozilla/TimeStamp.h" #include <algorithm> #include "mozilla/VisualEventTracer.h" // we pick 16k as the max buffer size because that is the threshold above which // we are unable to store the data in the cache block files // see nsDiskCacheMap.[cpp,h] @@ -615,17 +616,17 @@ nsDiskCacheStreamIO::DeleteBuffer() if (mBuffer) { free(mBuffer); mBuffer = nullptr; mBufSize = 0; } } size_t -nsDiskCacheStreamIO::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsDiskCacheStreamIO::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { size_t usage = aMallocSizeOf(this); usage += aMallocSizeOf(mFD); usage += aMallocSizeOf(mBuffer); return usage; }
--- a/netwerk/cache/nsDiskCacheStreams.h +++ b/netwerk/cache/nsDiskCacheStreams.h @@ -3,16 +3,17 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _nsDiskCacheStreams_h_ #define _nsDiskCacheStreams_h_ +#include "mozilla/MemoryReporting.h" #include "nsDiskCacheBinding.h" #include "nsCache.h" #include "nsIInputStream.h" #include "nsIOutputStream.h" #include "pratom.h" @@ -35,17 +36,17 @@ public: void IncrementInputStreamCount() { PR_ATOMIC_INCREMENT(&mInStreamCount); } void DecrementInputStreamCount() { PR_ATOMIC_DECREMENT(&mInStreamCount); NS_ASSERTION(mInStreamCount >= 0, "mInStreamCount has gone negative"); } - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); // GCC 2.95.2 requires this to be defined, although we never call it. // and OS/2 requires that it not be private nsDiskCacheStreamIO() { NS_NOTREACHED("oops"); } private: nsresult OpenCacheFile(int flags, PRFileDesc ** fd); nsresult ReadCacheBlocks(uint32_t bufferSize);
--- a/netwerk/dns/nsEffectiveTLDService.cpp +++ b/netwerk/dns/nsEffectiveTLDService.cpp @@ -2,16 +2,17 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // This service reads a file of rules describing TLD-like domain names. For a // complete description of the expected file format and parsing rules, see // http://wiki.mozilla.org/Gecko:Effective_TLD_Service +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "nsEffectiveTLDService.h" #include "nsIIDNService.h" #include "nsIMemoryReporter.h" #include "nsNetUtil.h" #include "prnetdb.h" @@ -116,17 +117,17 @@ nsEffectiveTLDService::Init() nsEffectiveTLDService::~nsEffectiveTLDService() { (void)::NS_UnregisterMemoryReporter(mReporter); mReporter = nullptr; gService = nullptr; } size_t -nsEffectiveTLDService::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsEffectiveTLDService::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t n = aMallocSizeOf(this); n += mHash.SizeOfExcludingThis(nullptr, aMallocSizeOf); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mReporter // - mIDNService
--- a/netwerk/dns/nsEffectiveTLDService.h +++ b/netwerk/dns/nsEffectiveTLDService.h @@ -4,16 +4,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsIEffectiveTLDService.h" #include "nsTHashtable.h" #include "nsString.h" #include "nsCOMPtr.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" class nsIIDNService; class nsIMemoryReporter; #define ETLD_ENTRY_N_INDEX_BITS 30 // struct for static data generated from effective_tld_names.dat struct ETLDEntry { @@ -105,17 +106,17 @@ class nsEffectiveTLDService MOZ_FINAL : { public: NS_DECL_ISUPPORTS NS_DECL_NSIEFFECTIVETLDSERVICE nsEffectiveTLDService() { } nsresult Init(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: nsresult GetBaseDomainInternal(nsCString &aHostname, int32_t aAdditionalParts, nsACString &aBaseDomain); nsresult NormalizeHostname(nsCString &aHostname); ~nsEffectiveTLDService(); nsIMemoryReporter* mReporter; nsTHashtable<nsDomainEntry> mHash;
--- a/startupcache/StartupCache.cpp +++ b/startupcache/StartupCache.cpp @@ -2,16 +2,17 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "prio.h" #include "prtypes.h" #include "pldhash.h" #include "nsXPCOMStrings.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/scache/StartupCache.h" #include "nsAutoPtr.h" #include "nsClassHashtable.h" #include "nsComponentManagerUtils.h" #include "nsDirectoryServiceUtils.h" #include "nsIClassInfo.h" #include "nsIFile.h" @@ -377,27 +378,27 @@ StartupCache::PutBuffer(const char* id, size_t StartupCache::SizeOfMapping() { return mArchive ? mArchive->SizeOfMapping() : 0; } size_t -StartupCache::HeapSizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +StartupCache::HeapSizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { // This function could measure more members, but they haven't been found by // DMD to be significant. They can be added later if necessary. return aMallocSizeOf(this) + mTable.SizeOfExcludingThis(SizeOfEntryExcludingThis, aMallocSizeOf); } /* static */ size_t StartupCache::SizeOfEntryExcludingThis(const nsACString& key, const nsAutoPtr<CacheEntry>& data, - nsMallocSizeOfFun mallocSizeOf, void *) + mozilla::MallocSizeOf mallocSizeOf, void *) { return data->SizeOfExcludingThis(mallocSizeOf); } struct CacheWriteHolder { nsCOMPtr<nsIZipWriter> writer; nsCOMPtr<nsIStringInputStream> stream;
--- a/startupcache/StartupCache.h +++ b/startupcache/StartupCache.h @@ -11,16 +11,17 @@ #include "nsZipArchive.h" #include "nsIStartupCache.h" #include "nsITimer.h" #include "nsIObserverService.h" #include "nsIObserver.h" #include "nsIOutputStream.h" #include "nsIFile.h" #include "mozilla/Attributes.h" +#include "mozilla/MemoryReporting.h" /** * The StartupCache is a persistent cache of simple key-value pairs, * where the keys are null-terminated c-strings and the values are * arbitrary data, passed as a (char*, size) tuple. * * Clients should use the GetSingleton() static method to access the cache. It * will be available from the end of XPCOM init (NS_InitXPCOM3 in nsXPComInit.cpp), @@ -77,17 +78,17 @@ struct CacheEntry // Takes possession of buf CacheEntry(char* buf, uint32_t len) : data(buf), size(len) { } ~CacheEntry() { } - size_t SizeOfExcludingThis(nsMallocSizeOfFun mallocSizeOf) { + size_t SizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) { return mallocSizeOf(data); } }; // We don't want to refcount StartupCache, and ObserverService wants to // refcount its listeners, so we'll let it refcount this instead. class StartupCacheListener MOZ_FINAL : public nsIObserver { @@ -124,17 +125,17 @@ public: nsresult RecordAgesAlways(); static StartupCache* GetSingleton(); static void DeleteSingleton(); // This measures all the heap memory used by the StartupCache, i.e. it // excludes the mapping. - size_t HeapSizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t HeapSizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); size_t SizeOfMapping(); private: StartupCache(); ~StartupCache(); enum TelemetrifyAge { @@ -150,17 +151,17 @@ private: void WaitOnWriteThread(); static nsresult InitSingleton(); static void WriteTimeout(nsITimer *aTimer, void *aClosure); static void ThreadedWrite(void *aClosure); static size_t SizeOfEntryExcludingThis(const nsACString& key, const nsAutoPtr<CacheEntry>& data, - nsMallocSizeOfFun mallocSizeOf, + mozilla::MallocSizeOf mallocSizeOf, void *); nsClassHashtable<nsCStringHashKey, CacheEntry> mTable; nsRefPtr<nsZipArchive> mArchive; nsCOMPtr<nsIFile> mFile; nsCOMPtr<nsIObserverService> mObserverService; nsRefPtr<StartupCacheListener> mListener;
--- a/toolkit/components/places/History.cpp +++ b/toolkit/components/places/History.cpp @@ -1,16 +1,17 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ : * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/Attributes.h" #include "mozilla/DebugOnly.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" #include "nsXULAppAPI.h" #include "History.h" #include "nsNavHistory.h" @@ -2216,23 +2217,23 @@ History::FetchPageInfo(VisitData& _place } rv = stmt->GetInt32(5, &_place.frecency); NS_ENSURE_SUCCESS(rv, rv); return NS_OK; } /* static */ size_t -History::SizeOfEntryExcludingThis(KeyClass* aEntry, nsMallocSizeOfFun aMallocSizeOf, void *) +History::SizeOfEntryExcludingThis(KeyClass* aEntry, mozilla::MallocSizeOf aMallocSizeOf, void *) { return aEntry->array.SizeOfExcludingThis(aMallocSizeOf); } size_t -History::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOfThis) +History::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOfThis) { return aMallocSizeOfThis(this) + mObservers.SizeOfExcludingThis(SizeOfEntryExcludingThis, aMallocSizeOfThis); } /* static */ History* History::GetService()
--- a/toolkit/components/places/History.h +++ b/toolkit/components/places/History.h @@ -3,16 +3,17 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_places_History_h_ #define mozilla_places_History_h_ #include "mozilla/IHistory.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Mutex.h" #include "mozIAsyncHistory.h" #include "nsIDownloadHistory.h" #include "Database.h" #include "mozilla/dom/Link.h" #include "nsTHashtable.h" #include "nsString.h" @@ -77,17 +78,17 @@ public: * Whether or the page was recorded in moz_places, false otherwise. */ nsresult FetchPageInfo(VisitData& _place, bool* _exists); /** * Get the number of bytes of memory this History object is using, * including sizeof(*this)) */ - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); /** * Obtains a pointer to this service. */ static History* GetService(); /** * Obtains a pointer that has had AddRef called on it. Used by the service @@ -187,17 +188,17 @@ private: ObserverArray array; }; /** * Helper function for nsTHashtable::SizeOfExcludingThis call in * SizeOfIncludingThis(). */ static size_t SizeOfEntryExcludingThis(KeyClass* aEntry, - nsMallocSizeOfFun aMallocSizeOf, + mozilla::MallocSizeOf aMallocSizeOf, void*); nsTHashtable<KeyClass> mObservers; /** * mRecentlyVisitedURIs remembers URIs which are recently added to the DB, * to avoid saving these locations repeatedly in a short period. */
--- a/toolkit/components/places/tests/cpp/mock_Link.h +++ b/toolkit/components/places/tests/cpp/mock_Link.h @@ -6,16 +6,17 @@ /** * This is a mock Link object which can be used in tests. */ #ifndef mock_Link_h__ #define mock_Link_h__ +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/Link.h" class mock_Link : public mozilla::dom::Link { public: NS_DECL_ISUPPORTS mock_Link(void (*aHandlerFunction)(nsLinkState), @@ -36,17 +37,17 @@ public: { // Notify our callback function. mHandler(aState); // Break the cycle so the object can be destroyed. mDeathGrip = 0; } - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { return 0; // the value shouldn't matter } ~mock_Link() { // Run the next test if we are supposed to. if (mRunNextTest) { run_next_test(); @@ -103,17 +104,17 @@ Link::ResetLinkState(bool aNotify, bool already_AddRefed<nsIURI> Link::GetURI() const { NS_NOTREACHED("Unexpected call to Link::GetURI"); return nullptr; // suppress compiler warning } size_t -Link::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +Link::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const { NS_NOTREACHED("Unexpected call to Link::SizeOfExcludingThis"); return 0; } } // namespace dom } // namespace mozilla
--- a/toolkit/components/telemetry/Telemetry.cpp +++ b/toolkit/components/telemetry/Telemetry.cpp @@ -16,16 +16,17 @@ #include "base/histogram.h" #include "base/pickle.h" #include "nsIComponentManager.h" #include "nsIServiceManager.h" #include "nsThreadManager.h" #include "nsCOMArray.h" #include "nsCOMPtr.h" #include "nsXPCOMPrivate.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/ModuleUtils.h" #include "nsIXPConnect.h" #include "mozilla/Services.h" #include "jsapi.h" #include "jsfriendapi.h" #include "js/GCAPI.h" #include "nsStringGlue.h" #include "nsITelemetry.h" @@ -246,34 +247,34 @@ public: static void RecordSlowStatement(const nsACString &sql, const nsACString &dbName, uint32_t delay); #if defined(MOZ_ENABLE_PROFILER_SPS) static void RecordChromeHang(uint32_t duration, Telemetry::ProcessedStack &aStack); #endif static nsresult GetHistogramEnumId(const char *name, Telemetry::ID *id); static int64_t GetTelemetryMemoryUsed(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); struct Stat { uint32_t hitCount; uint32_t totalTime; }; struct StmtStats { struct Stat mainThread; struct Stat otherThreads; }; typedef nsBaseHashtableET<nsCStringHashKey, StmtStats> SlowSQLEntryType; private: // We don't need to poke inside any of our hashtables for more // information, so we just have One Function To Size Them All. template<typename EntryType> struct impl { static size_t SizeOfEntryExcludingThis(EntryType *, - nsMallocSizeOfFun, + mozilla::MallocSizeOf, void *) { return 0; }; }; static nsCString SanitizeSQL(const nsACString& sql); enum SanitizedState { Sanitized, Unsanitized }; @@ -341,17 +342,17 @@ private: friend class nsFetchTelemetryData; }; TelemetryImpl* TelemetryImpl::sTelemetry = NULL; NS_MEMORY_REPORTER_MALLOC_SIZEOF_FUN(TelemetryMallocSizeOf) size_t -TelemetryImpl::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +TelemetryImpl::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) { size_t n = 0; n += aMallocSizeOf(this); // Ignore the hashtables in mAddonMap; they are not significant. n += mAddonMap.SizeOfExcludingThis(impl<AddonEntryType>::SizeOfEntryExcludingThis, aMallocSizeOf); n += mHistogramMap.SizeOfExcludingThis(impl<CharPtrEntryType>::SizeOfEntryExcludingThis, aMallocSizeOf);
--- a/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp +++ b/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp @@ -11,16 +11,17 @@ #include "nsString.h" #include "nsUrlClassifierPrefixSet.h" #include "nsIUrlClassifierPrefixSet.h" #include "nsIRandomGenerator.h" #include "nsIFile.h" #include "nsToolkitCompsCID.h" #include "nsTArray.h" #include "nsThreadUtils.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Mutex.h" #include "mozilla/Telemetry.h" #include "mozilla/FileUtils.h" #include "prlog.h" using namespace mozilla; // NSPR_LOG_MODULES=UrlClassifierPrefixSet:5 @@ -309,17 +310,17 @@ nsUrlClassifierPrefixSet::Contains(uint3 if (diff == 0) { *aFound = true; } return NS_OK; } size_t -nsUrlClassifierPrefixSet::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsUrlClassifierPrefixSet::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t n = 0; n += aMallocSizeOf(this); n += mDeltas.SizeOfExcludingThis(aMallocSizeOf); n += mIndexPrefixes.SizeOfExcludingThis(aMallocSizeOf); n += mIndexStarts.SizeOfExcludingThis(aMallocSizeOf); return n; }
--- a/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.h +++ b/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.h @@ -10,16 +10,17 @@ #include "nsISupportsUtils.h" #include "nsID.h" #include "nsIFile.h" #include "nsIMutableArray.h" #include "nsIUrlClassifierPrefixSet.h" #include "nsIMemoryReporter.h" #include "nsTArray.h" #include "nsToolkitCompsCID.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Mutex.h" #include "mozilla/CondVar.h" #include "mozilla/FileUtils.h" class nsPrefixSetReporter; class nsUrlClassifierPrefixSet : public nsIUrlClassifierPrefixSet { @@ -34,17 +35,17 @@ public: NS_IMETHOD IsEmpty(bool* aEmpty); NS_IMETHOD LoadFromFile(nsIFile* aFile); NS_IMETHOD StoreToFile(nsIFile* aFile); NS_DECL_ISUPPORTS // Return the estimated size of the set on disk and in memory, // in bytes - size_t SizeOfIncludingThis(nsMallocSizeOfFun mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); protected: static const uint32_t DELTAS_LIMIT = 100; static const uint32_t MAX_INDEX_DIFF = (1 << 16); static const uint32_t PREFIXSET_VERSION_MAGIC = 1; nsRefPtr<nsPrefixSetReporter> mReporter;
--- a/xpcom/base/CycleCollectedJSRuntime.cpp +++ b/xpcom/base/CycleCollectedJSRuntime.cpp @@ -50,16 +50,17 @@ // themselves. Any C++ objects they hold will have a missing (untraversed) // edge from the JS object to the C++ object and so it will be marked black // too. This decreases the number of objects that the cycle collector has to // deal with. // To improve debugging, if WantAllTraces() is true all JS objects are // traversed. #include "mozilla/CycleCollectedJSRuntime.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/dom/BindingUtils.h" #include "mozilla/dom/DOMJSClass.h" #include "jsfriendapi.h" #include "jsprf.h" #include "nsCycleCollectionNoteRootCallback.h" #include "nsCycleCollectionParticipant.h" #include "nsCycleCollector.h" #include "nsDOMJSUtils.h" @@ -475,17 +476,17 @@ CycleCollectedJSRuntime::~CycleCollected { nsCycleCollector_forgetJSRuntime(); JS_DestroyRuntime(mJSRuntime); mJSRuntime = nullptr; } size_t -CycleCollectedJSRuntime::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const +CycleCollectedJSRuntime::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; // NULL for the second arg; we're not measuring anything hanging off the // entries in mJSHolders. n += mJSHolders.SizeOfExcludingThis(nullptr, aMallocSizeOf); return n;
--- a/xpcom/base/CycleCollectedJSRuntime.h +++ b/xpcom/base/CycleCollectedJSRuntime.h @@ -2,16 +2,17 @@ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef mozilla_CycleCollectedJSRuntime_h__ #define mozilla_CycleCollectedJSRuntime_h__ +#include "mozilla/MemoryReporting.h" #include "jsprvtd.h" #include "jsapi.h" #include "nsCycleCollectionParticipant.h" #include "nsDataHashtable.h" #include "nsHashKeys.h" class nsCycleCollectionNoteRootCallback; @@ -83,17 +84,17 @@ protected: virtual ~CycleCollectedJSRuntime(); JSRuntime* Runtime() const { MOZ_ASSERT(mJSRuntime); return mJSRuntime; } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const; + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; void UnmarkSkippableJSHolders(); virtual void TraverseAdditionalNativeRoots(nsCycleCollectionNoteRootCallback& aCb) = 0; virtual void TraceAdditionalNativeGrayRoots(JSTracer* aTracer) = 0; private: void
--- a/xpcom/base/nsCycleCollector.cpp +++ b/xpcom/base/nsCycleCollector.cpp @@ -94,16 +94,17 @@ #include <crtdbg.h> #include <errno.h> #endif #endif #include "base/process_util.h" /* This must occur *after* base/process_util.h to avoid typedefs conflicts. */ +#include "mozilla/MemoryReporting.h" #include "mozilla/Util.h" #include "mozilla/CycleCollectedJSRuntime.h" #include "nsCycleCollectionParticipant.h" #include "nsCycleCollectionNoteRootCallback.h" #include "nsCycleCollectorUtils.h" #include "nsIProgrammingLanguage.h" #include "nsBaseHashtable.h" @@ -380,17 +381,17 @@ public: (mCurrent++)->ptrInfo = aEdge; } private: // mBlockEnd points to space for null sentinel PtrInfoOrBlock *mCurrent, *mBlockEnd; Block **mNextBlockPtr; }; - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; Block *b = Blocks(); while (b) { n += aMallocSizeOf(b); b = b->Next(); } return n; } @@ -577,17 +578,17 @@ public: // for an empty graph. Block *&mFirstBlock; Block *mCurBlock; // mNext is the next value we want to return, unless mNext == mBlockEnd // NB: mLast is a reference to allow enumerating while building! PtrInfo *mNext, *mBlockEnd, *&mLast; }; - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const { + size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { // We don't measure the things pointed to by mEntries[] because those // pointers are non-owning. size_t n = 0; Block *b = mBlocks; while (b) { n += aMallocSizeOf(b); b = b->mNext; } @@ -618,17 +619,17 @@ struct GCGraph nsTArray<WeakMapping> mWeakMaps; uint32_t mRootCount; GCGraph() : mRootCount(0) { } ~GCGraph() { } - void SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf, + void SizeOfExcludingThis(MallocSizeOf aMallocSizeOf, size_t *aNodesSize, size_t *aEdgesSize) const { *aNodesSize = mNodes.SizeOfExcludingThis(aMallocSizeOf); *aEdgesSize = mEdges.SizeOfExcludingThis(aMallocSizeOf); // These fields are deliberately not measured: // - mWeakMaps entries, because the pointers are non-owning } }; @@ -832,17 +833,17 @@ public: --mCount; } uint32_t Count() const { return mCount; } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const + size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { size_t n = 0; // Don't measure mFirstBlock because it's within |this|. const Block *block = mFirstBlock.mNext; while (block) { n += aMallocSizeOf(block); block = block->mNext; @@ -1084,17 +1085,17 @@ public: void ClearGraph() { mGraph.mNodes.Clear(); mGraph.mEdges.Clear(); mGraph.mWeakMaps.Clear(); mGraph.mRootCount = 0; } - void SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, + void SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, size_t *aObjectSize, size_t *aGraphNodesSize, size_t *aGraphEdgesSize, size_t *aWhiteNodeSize, size_t *aPurpleBufferSize) const; }; NS_IMETHODIMP @@ -2914,17 +2915,17 @@ nsCycleCollector::Shutdown() } ShutdownCollect(listener); } mParams.mDoNothing = true; } void -nsCycleCollector::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf, +nsCycleCollector::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf, size_t *aObjectSize, size_t *aGraphNodesSize, size_t *aGraphEdgesSize, size_t *aWhiteNodeSize, size_t *aPurpleBufferSize) const { *aObjectSize = aMallocSizeOf(this);
--- a/xpcom/base/nsISizeOf.h +++ b/xpcom/base/nsISizeOf.h @@ -2,33 +2,34 @@ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsISizeOf_h___ #define nsISizeOf_h___ +#include "mozilla/MemoryReporting.h" #include "nsISupports.h" #define NS_ISIZEOF_IID \ {0x61d05579, 0xd7ec, 0x485c, \ { 0xa4, 0x0c, 0x31, 0xc7, 0x9a, 0x5c, 0xf9, 0xf3 }} class nsISizeOf : public nsISupports { public: NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISIZEOF_IID) /** * Measures the size of the things pointed to by the object. */ - virtual size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) const = 0; + virtual size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const = 0; /** * Like SizeOfExcludingThis, but also includes the size of the object itself. */ - virtual size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) const = 0; + virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsISizeOf, NS_ISIZEOF_IID) #endif /* nsISizeOf_h___ */
--- a/xpcom/base/nscore.h +++ b/xpcom/base/nscore.h @@ -23,22 +23,16 @@ /** * Incorporate the integer data types which XPCOM uses. */ #include "mozilla/StandardInteger.h" #include "stddef.h" #include "mozilla/NullPtr.h" -/* - * This is for functions that are like malloc_usable_size. Such functions are - * used for measuring the size of data structures. - */ -typedef size_t(*nsMallocSizeOfFun)(const void *p); - /* Core XPCOM declarations. */ /*----------------------------------------------------------------------*/ /* Import/export defines */ /** * Using the visibility("hidden") attribute allows the compiler to use * PC-relative addressing to call this function. If a function does not
--- a/xpcom/components/nsCategoryManager.cpp +++ b/xpcom/components/nsCategoryManager.cpp @@ -23,16 +23,17 @@ #include "nsServiceManagerUtils.h" #include "nsIObserver.h" #include "nsIObserverService.h" #include "nsReadableUtils.h" #include "nsCRT.h" #include "nsQuickSort.h" #include "nsEnumeratorUtils.h" #include "nsThreadUtils.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Services.h" #include "ManifestParser.h" using namespace mozilla; class nsIComponentLoaderManager; /* @@ -307,17 +308,17 @@ CategoryNode::Enumerate(nsISimpleEnumera return NS_ERROR_OUT_OF_MEMORY; *_retval = enumObj; NS_ADDREF(*_retval); return NS_OK; } size_t -CategoryNode::SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf) +CategoryNode::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) { // We don't measure the strings pointed to by the entries because the // pointers are non-owning. return mTable.SizeOfExcludingThis(nullptr, aMallocSizeOf); } struct persistent_userstruct { PRFileDesc* fd; @@ -494,26 +495,26 @@ nsCategoryManager::GetCategoryManagerSiz MOZ_ASSERT(nsCategoryManager::gCategoryManager); return nsCategoryManager::gCategoryManager->SizeOfIncludingThis( CategoryManagerMallocSizeOf); } static size_t SizeOfCategoryManagerTableEntryExcludingThis(nsDepCharHashKey::KeyType aKey, const nsAutoPtr<CategoryNode> &aData, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { // We don't measure the string pointed to by aKey because it's a non-owning // pointer. return aData.get()->SizeOfExcludingThis(aMallocSizeOf); } size_t -nsCategoryManager::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsCategoryManager::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t n = aMallocSizeOf(this); n += PL_SizeOfArenaPoolExcludingPool(&mArena, aMallocSizeOf); n += mTable.SizeOfExcludingThis(SizeOfCategoryManagerTableEntryExcludingThis, aMallocSizeOf);
--- a/xpcom/components/nsCategoryManager.h +++ b/xpcom/components/nsCategoryManager.h @@ -6,16 +6,17 @@ #ifndef NSCATEGORYMANAGER_H #define NSCATEGORYMANAGER_H #include "prio.h" #include "plarena.h" #include "nsClassHashtable.h" #include "nsICategoryManager.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Mutex.h" #include "mozilla/Attributes.h" class nsIMemoryReporter; /* 16d222a6-1dd2-11b2-b693-f38b02c021b2 */ #define NS_CATEGORYMANAGER_CID \ { 0x16d222a6, 0x1dd2, 0x11b2, \ @@ -71,17 +72,17 @@ public: NS_METHOD Enumerate(nsISimpleEnumerator** _retval); // CategoryNode is arena-allocated, with the strings static CategoryNode* Create(PLArenaPool* aArena); ~CategoryNode(); void operator delete(void*) { } - size_t SizeOfExcludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: CategoryNode() : mLock("CategoryLeaf") { } void* operator new(size_t aSize, PLArenaPool* aArena); @@ -117,17 +118,17 @@ public: static nsresult Create(nsISupports* aOuter, REFNSIID aIID, void** aResult); void InitMemoryReporter(); static nsCategoryManager* GetSingleton(); static void Destroy(); static int64_t GetCategoryManagerSize(); - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf); private: static nsCategoryManager* gCategoryManager; nsCategoryManager(); ~nsCategoryManager(); CategoryNode* get_category(const char* aName);
--- a/xpcom/components/nsComponentManager.cpp +++ b/xpcom/components/nsComponentManager.cpp @@ -31,16 +31,17 @@ #include "nsCategoryManager.h" #include "nsCOMPtr.h" #include "nsComponentManager.h" #include "nsDirectoryService.h" #include "nsDirectoryServiceDefs.h" #include "nsCategoryManager.h" #include "nsCategoryManagerUtils.h" #include "xptiprivate.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/XPTInterfaceInfoManager.h" #include "nsIConsoleService.h" #include "nsIMemoryReporter.h" #include "nsIObserverService.h" #include "nsISimpleEnumerator.h" #include "nsIStringEnumerator.h" #include "nsXPCOM.h" #include "nsXPCOMPrivate.h" @@ -1675,35 +1676,35 @@ nsComponentManagerImpl::ContractIDToCID( } *_retval = nullptr; return NS_ERROR_FACTORY_NOT_REGISTERED; } static size_t SizeOfFactoriesEntryExcludingThis(nsIDHashKey::KeyType aKey, nsFactoryEntry* const &aData, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { return aData->SizeOfIncludingThis(aMallocSizeOf); } static size_t SizeOfContractIDsEntryExcludingThis(nsCStringHashKey::KeyType aKey, nsFactoryEntry* const &aData, - nsMallocSizeOfFun aMallocSizeOf, + MallocSizeOf aMallocSizeOf, void* aUserArg) { // We don't measure the nsFactoryEntry data because its owned by mFactories // (which measures them in SizeOfFactoriesEntryExcludingThis). return aKey.SizeOfExcludingThisMustBeUnshared(aMallocSizeOf); } size_t -nsComponentManagerImpl::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsComponentManagerImpl::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t n = aMallocSizeOf(this); n += mLoaderMap.SizeOfExcludingThis(nullptr, aMallocSizeOf); n += mFactories.SizeOfExcludingThis(SizeOfFactoriesEntryExcludingThis, aMallocSizeOf); n += mContractIDs.SizeOfExcludingThis(SizeOfContractIDsEntryExcludingThis, aMallocSizeOf); n += sStaticModules->SizeOfIncludingThis(aMallocSizeOf); n += sModuleLocations->SizeOfIncludingThis(aMallocSizeOf); @@ -1797,17 +1798,17 @@ nsFactoryEntry::GetFactory() factory.swap(mFactory); } } nsCOMPtr<nsIFactory> factory = mFactory; return factory.forget(); } size_t -nsFactoryEntry::SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf) +nsFactoryEntry::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) { size_t n = aMallocSizeOf(this); // Measurement of the following members may be added later if DMD finds it is // worthwhile: // - mCIDEntry; // - mModule; // - mFactory;
--- a/xpcom/components/nsComponentManager.h +++ b/xpcom/components/nsComponentManager.h @@ -8,16 +8,17 @@ #include "nsXPCOM.h" #include "xpcom-private.h" #include "nsIComponentManager.h" #include "nsIComponentRegistrar.h" #include "nsIServiceManager.h" #include "nsIFile.h" +#include "mozilla/MemoryReporting.h" #include "mozilla/Module.h" #include "mozilla/ModuleLoader.h" #include "mozilla/Mutex.h" #include "nsXULAppAPI.h" #include "nsNativeComponentLoader.h" #include "nsIFactory.h" #include "nsIInterfaceRequestor.h" #include "nsIInterfaceRequestorUtils.h" @@ -306,17 +307,17 @@ public: inline PendingServiceInfo* AddPendingService(const nsCID& aServiceCID, PRThread* aThread); inline void RemovePendingService(const nsCID& aServiceCID); inline PRThread* GetPendingServiceThread(const nsCID& aServiceCID) const; nsTArray<PendingServiceInfo> mPendingServices; - size_t SizeOfIncludingThis(nsMallocSizeOfFun aMallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf aM