diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index f7f34dd4549a..172ea5c03d05 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -1927,8 +1927,8 @@ PRBool CSSParserImpl::ParseSelectorGroup(nsresult& aErrorCode, nsCSSSelector* listSel = list->mSelectors; // pull out pseudo elements here - nsAtomStringList* prevList = nsnull; - nsAtomStringList* pseudoClassList = listSel->mPseudoClassList; + nsPseudoClassList* prevList = nsnull; + nsPseudoClassList* pseudoClassList = listSel->mPseudoClassList; while (nsnull != pseudoClassList) { if (! nsCSSPseudoClasses::IsPseudoClass(pseudoClassList->mAtom)) { havePseudoElement = PR_TRUE; diff --git a/layout/style/nsCSSRuleProcessor.cpp b/layout/style/nsCSSRuleProcessor.cpp index 16a2b00142d5..ad2c5420af2d 100644 --- a/layout/style/nsCSSRuleProcessor.cpp +++ b/layout/style/nsCSSRuleProcessor.cpp @@ -1076,7 +1076,7 @@ static PRBool SelectorMatches(RuleProcessorData &data, // test for pseudo class match // first-child, root, lang, active, focus, hover, link, visited... // XXX disabled, enabled, selected, selection - for (nsAtomStringList* pseudoClass = aSelector->mPseudoClassList; + for (nsPseudoClassList* pseudoClass = aSelector->mPseudoClassList; pseudoClass && result; pseudoClass = pseudoClass->mNext) { PRInt32 stateToCheck = 0; if ((nsCSSPseudoClasses::firstChild == pseudoClass->mAtom) || @@ -1929,7 +1929,7 @@ nsCSSRuleProcessor::ClearRuleCascades() inline PRBool IsStateSelector(nsCSSSelector& aSelector) { - for (nsAtomStringList* pseudoClass = aSelector.mPseudoClassList; + for (nsPseudoClassList* pseudoClass = aSelector.mPseudoClassList; pseudoClass; pseudoClass = pseudoClass->mNext) { if ((pseudoClass->mAtom == nsCSSPseudoClasses::active) || (pseudoClass->mAtom == nsCSSPseudoClasses::checked) || diff --git a/layout/style/nsCSSStyleRule.cpp b/layout/style/nsCSSStyleRule.cpp index 7c8631907601..8077ff5abc55 100644 --- a/layout/style/nsCSSStyleRule.cpp +++ b/layout/style/nsCSSStyleRule.cpp @@ -158,45 +158,33 @@ nsAtomList::~nsAtomList(void) NS_IF_DEEP_DELETE(nsAtomList, mNext); } -nsAtomStringList::nsAtomStringList(nsIAtom* aAtom, const PRUnichar* aString) +nsPseudoClassList::nsPseudoClassList(nsIAtom* aAtom, const PRUnichar* aString) : mAtom(aAtom), mString(nsnull), mNext(nsnull) { - MOZ_COUNT_CTOR(nsAtomStringList); + MOZ_COUNT_CTOR(nsPseudoClassList); if (aString) mString = NS_strdup(aString); } -nsAtomStringList::nsAtomStringList(const nsString& aAtomValue, - const PRUnichar* aString) - : mAtom(nsnull), - mString(nsnull), - mNext(nsnull) +nsPseudoClassList* +nsPseudoClassList::Clone(PRBool aDeep) const { - MOZ_COUNT_CTOR(nsAtomStringList); - mAtom = do_GetAtom(aAtomValue); - if (aString) - mString = NS_strdup(aString); -} - -nsAtomStringList* -nsAtomStringList::Clone(PRBool aDeep) const -{ - nsAtomStringList *result = new nsAtomStringList(mAtom, mString); + nsPseudoClassList *result = new nsPseudoClassList(mAtom, mString); if (aDeep) - NS_IF_DEEP_CLONE(nsAtomStringList, mNext, (PR_FALSE)); + NS_IF_DEEP_CLONE(nsPseudoClassList, mNext, (PR_FALSE)); return result; } -nsAtomStringList::~nsAtomStringList(void) +nsPseudoClassList::~nsPseudoClassList(void) { - MOZ_COUNT_DTOR(nsAtomStringList); + MOZ_COUNT_DTOR(nsPseudoClassList); if (mString) NS_Free(mString); - NS_IF_DEEP_DELETE(nsAtomStringList, mNext); + NS_IF_DEEP_DELETE(nsPseudoClassList, mNext); } nsAttrSelector::nsAttrSelector(PRInt32 aNameSpace, const nsString& aAttr) @@ -359,27 +347,15 @@ void nsCSSSelector::AddClass(const nsString& aClass) } } -void nsCSSSelector::AddPseudoClass(const nsString& aPseudoClass, - const PRUnichar* aString) -{ - if (!aPseudoClass.IsEmpty()) { - nsAtomStringList** list = &mPseudoClassList; - while (nsnull != *list) { - list = &((*list)->mNext); - } - *list = new nsAtomStringList(aPseudoClass, aString); - } -} - void nsCSSSelector::AddPseudoClass(nsIAtom* aPseudoClass, const PRUnichar* aString) { if (nsnull != aPseudoClass) { - nsAtomStringList** list = &mPseudoClassList; + nsPseudoClassList** list = &mPseudoClassList; while (nsnull != *list) { list = &((*list)->mNext); } - *list = new nsAtomStringList(aPseudoClass, aString); + *list = new nsPseudoClassList(aPseudoClass, aString); } } @@ -428,7 +404,7 @@ PRInt32 nsCSSSelector::CalcWeight(void) const weight += 0x000100; list = list->mNext; } - nsAtomStringList *plist = mPseudoClassList; + nsPseudoClassList *plist = mPseudoClassList; while (nsnull != plist) { weight += 0x000100; plist = plist->mNext; @@ -648,7 +624,7 @@ void nsCSSSelector::ToStringInternal(nsAString& aString, // Append each pseudo-class in the linked list if (mPseudoClassList) { - nsAtomStringList* list = mPseudoClassList; + nsPseudoClassList* list = mPseudoClassList; while (list != nsnull) { list->mAtom->ToString(temp); aString.Append(temp); diff --git a/layout/style/nsICSSStyleRule.h b/layout/style/nsICSSStyleRule.h index 9a63debc2bad..6d12354456ae 100644 --- a/layout/style/nsICSSStyleRule.h +++ b/layout/style/nsICSSStyleRule.h @@ -75,24 +75,23 @@ private: nsAtomList& operator=(const nsAtomList& aCopy); }; -struct nsAtomStringList { +struct nsPseudoClassList { public: - nsAtomStringList(nsIAtom* aAtom, const PRUnichar *aString = nsnull); - nsAtomStringList(const nsString& aAtomValue, const PRUnichar *aString = nsnull); - ~nsAtomStringList(void); + nsPseudoClassList(nsIAtom* aAtom, const PRUnichar *aString = nsnull); + ~nsPseudoClassList(void); /** Do a deep clone. Should be used only on the first in the linked list. */ - nsAtomStringList* Clone() const { return Clone(PR_TRUE); } + nsPseudoClassList* Clone() const { return Clone(PR_TRUE); } nsCOMPtr mAtom; PRUnichar* mString; - nsAtomStringList* mNext; + nsPseudoClassList* mNext; private: - nsAtomStringList* Clone(PRBool aDeep) const; + nsPseudoClassList* Clone(PRBool aDeep) const; // These are not supported and are not implemented! - nsAtomStringList(const nsAtomStringList& aCopy); - nsAtomStringList& operator=(const nsAtomStringList& aCopy); + nsPseudoClassList(const nsPseudoClassList& aCopy); + nsPseudoClassList& operator=(const nsPseudoClassList& aCopy); }; #define NS_ATTR_FUNC_SET 0 // [attr] @@ -142,7 +141,6 @@ public: void SetTag(const nsString& aTag); void AddID(const nsString& aID); void AddClass(const nsString& aClass); - void AddPseudoClass(const nsString& aPseudoClass, const PRUnichar* aString = nsnull); void AddPseudoClass(nsIAtom* aPseudoClass, const PRUnichar* aString = nsnull); void AddAttribute(PRInt32 aNameSpace, const nsString& aAttr); void AddAttribute(PRInt32 aNameSpace, const nsString& aAttr, PRUint8 aFunc, @@ -167,8 +165,8 @@ public: nsCOMPtr mTag; nsAtomList* mIDList; nsAtomList* mClassList; - nsAtomStringList* mPseudoClassList; // atom for the pseudo, string for - // the argument to functional pseudos + nsPseudoClassList* mPseudoClassList; // atom for the pseudo, string for + // the argument to functional pseudos nsAttrSelector* mAttrList; PRUnichar mOperator; nsCSSSelector* mNegations; diff --git a/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp b/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp index d73d7838698f..cbc87a0d8d66 100644 --- a/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp +++ b/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp @@ -4119,7 +4119,7 @@ nsTreeBodyFrame::PseudoMatches(nsIAtom* aTag, nsCSSSelector* aSelector, PRBool* // it is contained in our scratch array. If we have a miss, then // we aren't a match. If all items in the pseudoclass list are // present in the scratch array, then we have a match. - nsAtomStringList* curr = aSelector->mPseudoClassList; + nsPseudoClassList* curr = aSelector->mPseudoClassList; while (curr) { PRInt32 index; mScratchArray->GetIndexOf(curr->mAtom, &index);