struct HTMLAttribute { HTMLAttribute(void) : mValue(), mNext(nsnull) { MOZ_COUNT_CTOR(HTMLAttribute); mAttribute.mAtom = nsnull; }
class nsHTMLMappedAttributes : public nsIHTMLMappedAttributes, public nsIStyleRule { public: nsHTMLMappedAttributes(void); nsHTMLMappedAttributes(const nsHTMLMappedAttributes& aCopy); virtual ~nsHTMLMappedAttributes(void);  NS_DECL_ISUPPORTS  NS_IMETHOD Init(nsIHTMLStyleSheet* aSheet, nsMapRuleToAttributesFunc aMapRuleFunc); NS_IMETHOD Clone(nsHTMLMappedAttributes** aInstancePtrResult) const; NS_IMETHOD Reset(void); NS_IMETHOD SetMappingFunction(nsMapRuleToAttributesFunc aMapRuleFunc);  NS_IMETHOD SetAttribute(nsIAtom* aAttrName, const nsAString& aValue); NS_IMETHOD SetAttribute(nsIAtom* aAttrName, const nsHTMLValue& aValue); NS_IMETHOD UnsetAttribute(nsIAtom* aAttrName, PRInt32& aAttrCount);  NS_IMETHOD GetAttribute(nsIAtom* aAttrName, nsHTMLValue& aValue) const; NS_IMETHOD GetAttribute(nsIAtom* aAttrName, const nsHTMLValue** aValue) const; NS_IMETHOD_(PRBool) HasAttribute(nsIAtom* aAttrName) const;  NS_IMETHOD GetAttributeCount(PRInt32& aCount) const;  NS_IMETHOD Equals(const nsIHTMLMappedAttributes* aAttributes, PRBool& aResult) const; NS_IMETHOD HashValue(PRUint32& aValue) const;  NS_IMETHOD AddUse(void); NS_IMETHOD ReleaseUse(void); NS_IMETHOD GetUseCount(PRInt32& aUseCount) const;  NS_IMETHOD SetUniqued(PRBool aUniqued); NS_IMETHOD GetUniqued(PRBool& aUniqued); NS_IMETHOD DropStyleSheetReference(void);   NS_IMETHOD GetStyleSheet(nsIStyleSheet*& aSheet) const; NS_IMETHOD SetStyleSheet(nsIHTMLStyleSheet* aSheet);   NS_IMETHOD MapRuleInfoInto(nsRuleData* aRuleData);  #ifdef DEBUG NS_IMETHOD List(FILE* out, PRInt32 aIndent) const; #endif  nsIHTMLStyleSheet*  mSheet; PRInt32             mUseCount; PRInt32             mAttrCount; HTMLAttribute       mFirst; nsMapRuleToAttributesFunc mRuleMapper; PRBool              mUniqued; };
MOZ_DECL_CTOR_COUNTER(HTMLAttribute)struct HTMLAttribute {  HTMLAttribute(void)    : mValue(),      mNext(nsnull)  {    MOZ_COUNT_CTOR(HTMLAttribute);    mAttribute.mAtom = nsnull;  }