diff --git a/content/html/style/src/nsCSSStyleSheet.cpp b/content/html/style/src/nsCSSStyleSheet.cpp
index 9df70956930d..fa3e51e9a4f0 100644
--- a/content/html/style/src/nsCSSStyleSheet.cpp
+++ b/content/html/style/src/nsCSSStyleSheet.cpp
@@ -278,7 +278,8 @@ public:
virtual void PrependStyleRule(nsICSSStyleRule* aRule);
virtual void AppendStyleRule(nsICSSStyleRule* aRule);
- // XXX style rule enumerations
+ virtual PRInt32 StyleRuleCount(void);
+ virtual nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule);
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
@@ -299,7 +300,8 @@ protected:
nsIURLPtr mURL;
nsICSSStyleSheetPtr mFirstChild;
- nsISupportsArrayPtr mRules;
+ nsISupportsArrayPtr mOrderedRules;
+ nsISupportsArrayPtr mWeightedRules;
nsICSSStyleSheetPtr mNext;
RuleHash* mRuleHash;
};
@@ -345,7 +347,9 @@ static PRInt32 gInstanceCount;
CSSStyleSheetImpl::CSSStyleSheetImpl(nsIURL* aURL)
: nsICSSStyleSheet(),
- mURL(nsnull), mFirstChild(nsnull), mRules(nsnull), mNext(nsnull),
+ mURL(nsnull), mFirstChild(nsnull),
+ mOrderedRules(nsnull), mWeightedRules(nsnull),
+ mNext(nsnull),
mRuleHash(nsnull)
{
NS_INIT_REFCNT();
@@ -551,7 +555,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- if (mRules.IsNotNull()) {
+ if (mWeightedRules.IsNotNull()) {
if (nsnull == mRuleHash) {
BuildHash();
}
@@ -579,7 +583,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
data.mResults = list1;
mRuleHash->EnumerateAllRules(tagAtom, idAtom, classAtom, ContentEnumFunc, &data);
data.mResults = list2;
- mRules->EnumerateForwards(ContentEnumWrap, &data);
+ mWeightedRules->EnumerateForwards(ContentEnumWrap, &data);
NS_ASSERTION(list1->Equals(list2), "lists not equal");
NS_RELEASE(list1);
NS_RELEASE(list2);
@@ -669,7 +673,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- if (mRules.IsNotNull()) {
+ if (mWeightedRules.IsNotNull()) {
if (nsnull == mRuleHash) {
BuildHash();
}
@@ -685,7 +689,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
data.mResults = list1;
mRuleHash->EnumerateTagRules(aPseudoTag, PseudoEnumFunc, &data);
data.mResults = list2;
- mRules->EnumerateForwards(PseudoEnumWrap, &data);
+ mWeightedRules->EnumerateForwards(PseudoEnumWrap, &data);
NS_ASSERTION(list1->Equals(list2), "lists not equal");
NS_RELEASE(list1);
NS_RELEASE(list2);
@@ -736,20 +740,25 @@ void CSSStyleSheetImpl::PrependStyleRule(nsICSSStyleRule* aRule)
ClearHash();
//XXX replace this with a binary search?
PRInt32 weight = aRule->GetWeight();
- if (mRules.IsNull()) {
- if (NS_OK != NS_NewISupportsArray(mRules.AssignPtr()))
+ if (mWeightedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mWeightedRules.AssignPtr()))
return;
}
- PRInt32 index = mRules->Count();
+ if (mOrderedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mOrderedRules.AssignPtr()))
+ return;
+ }
+ PRInt32 index = mWeightedRules->Count();
while (0 <= --index) {
- nsICSSStyleRule* rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRule* rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
if (rule->GetWeight() > weight) { // insert before rules with equal or lesser weight
NS_RELEASE(rule);
break;
}
NS_RELEASE(rule);
}
- mRules->InsertElementAt(aRule, index + 1);
+ mWeightedRules->InsertElementAt(aRule, index + 1);
+ mOrderedRules->InsertElementAt(aRule, 0);
}
void CSSStyleSheetImpl::AppendStyleRule(nsICSSStyleRule* aRule)
@@ -759,21 +768,50 @@ void CSSStyleSheetImpl::AppendStyleRule(nsICSSStyleRule* aRule)
ClearHash();
//XXX replace this with a binary search?
PRInt32 weight = aRule->GetWeight();
- if (mRules.IsNull()) {
- if (NS_OK != NS_NewISupportsArray(mRules.AssignPtr()))
+ if (mWeightedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mWeightedRules.AssignPtr()))
return;
}
- PRInt32 count = mRules->Count();
+ if (mOrderedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mOrderedRules.AssignPtr()))
+ return;
+ }
+ PRInt32 count = mWeightedRules->Count();
PRInt32 index = -1;
while (++index < count) {
- nsICSSStyleRule* rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRule* rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
if (rule->GetWeight() < weight) { // insert after rules with equal or greater weight (before lower weight)
NS_RELEASE(rule);
break;
}
NS_RELEASE(rule);
}
- mRules->InsertElementAt(aRule, index);
+ mWeightedRules->InsertElementAt(aRule, index);
+ mOrderedRules->AppendElement(aRule);
+}
+
+PRInt32 CSSStyleSheetImpl::StyleRuleCount(void)
+{
+ if (mOrderedRules.IsNotNull()) {
+ return mOrderedRules->Count();
+ }
+ return 0;
+}
+
+nsresult CSSStyleSheetImpl::GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule)
+{
+ nsresult result = NS_ERROR_ILLEGAL_VALUE;
+
+ if (mOrderedRules.IsNotNull()) {
+ aRule = (nsICSSStyleRule*)mOrderedRules->ElementAt(aIndex);
+ if (nsnull != aRule) {
+ result = NS_OK;
+ }
+ }
+ else {
+ aRule = nsnull;
+ }
+ return result;
}
void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const
@@ -795,10 +833,10 @@ void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- PRInt32 count = (mRules.IsNotNull() ? mRules->Count() : 0);
+ PRInt32 count = (mWeightedRules.IsNotNull() ? mWeightedRules->Count() : 0);
for (index = 0; index < count; index++) {
- nsICSSStyleRulePtr rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRulePtr rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
rule->List(out, aIndent);
}
}
@@ -824,8 +862,8 @@ void CSSStyleSheetImpl::BuildHash(void)
NS_ASSERTION(nsnull == mRuleHash, "clear rule hash first");
mRuleHash = new RuleHash();
- if ((nsnull != mRuleHash) && mRules.IsNotNull()) {
- mRules->EnumerateForwards(BuildHashEnum, mRuleHash);
+ if ((nsnull != mRuleHash) && mWeightedRules.IsNotNull()) {
+ mWeightedRules->EnumerateForwards(BuildHashEnum, mRuleHash);
}
}
diff --git a/layout/html/style/src/nsCSSStyleSheet.cpp b/layout/html/style/src/nsCSSStyleSheet.cpp
index 9df70956930d..fa3e51e9a4f0 100644
--- a/layout/html/style/src/nsCSSStyleSheet.cpp
+++ b/layout/html/style/src/nsCSSStyleSheet.cpp
@@ -278,7 +278,8 @@ public:
virtual void PrependStyleRule(nsICSSStyleRule* aRule);
virtual void AppendStyleRule(nsICSSStyleRule* aRule);
- // XXX style rule enumerations
+ virtual PRInt32 StyleRuleCount(void);
+ virtual nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule);
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
@@ -299,7 +300,8 @@ protected:
nsIURLPtr mURL;
nsICSSStyleSheetPtr mFirstChild;
- nsISupportsArrayPtr mRules;
+ nsISupportsArrayPtr mOrderedRules;
+ nsISupportsArrayPtr mWeightedRules;
nsICSSStyleSheetPtr mNext;
RuleHash* mRuleHash;
};
@@ -345,7 +347,9 @@ static PRInt32 gInstanceCount;
CSSStyleSheetImpl::CSSStyleSheetImpl(nsIURL* aURL)
: nsICSSStyleSheet(),
- mURL(nsnull), mFirstChild(nsnull), mRules(nsnull), mNext(nsnull),
+ mURL(nsnull), mFirstChild(nsnull),
+ mOrderedRules(nsnull), mWeightedRules(nsnull),
+ mNext(nsnull),
mRuleHash(nsnull)
{
NS_INIT_REFCNT();
@@ -551,7 +555,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- if (mRules.IsNotNull()) {
+ if (mWeightedRules.IsNotNull()) {
if (nsnull == mRuleHash) {
BuildHash();
}
@@ -579,7 +583,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
data.mResults = list1;
mRuleHash->EnumerateAllRules(tagAtom, idAtom, classAtom, ContentEnumFunc, &data);
data.mResults = list2;
- mRules->EnumerateForwards(ContentEnumWrap, &data);
+ mWeightedRules->EnumerateForwards(ContentEnumWrap, &data);
NS_ASSERTION(list1->Equals(list2), "lists not equal");
NS_RELEASE(list1);
NS_RELEASE(list2);
@@ -669,7 +673,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- if (mRules.IsNotNull()) {
+ if (mWeightedRules.IsNotNull()) {
if (nsnull == mRuleHash) {
BuildHash();
}
@@ -685,7 +689,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
data.mResults = list1;
mRuleHash->EnumerateTagRules(aPseudoTag, PseudoEnumFunc, &data);
data.mResults = list2;
- mRules->EnumerateForwards(PseudoEnumWrap, &data);
+ mWeightedRules->EnumerateForwards(PseudoEnumWrap, &data);
NS_ASSERTION(list1->Equals(list2), "lists not equal");
NS_RELEASE(list1);
NS_RELEASE(list2);
@@ -736,20 +740,25 @@ void CSSStyleSheetImpl::PrependStyleRule(nsICSSStyleRule* aRule)
ClearHash();
//XXX replace this with a binary search?
PRInt32 weight = aRule->GetWeight();
- if (mRules.IsNull()) {
- if (NS_OK != NS_NewISupportsArray(mRules.AssignPtr()))
+ if (mWeightedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mWeightedRules.AssignPtr()))
return;
}
- PRInt32 index = mRules->Count();
+ if (mOrderedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mOrderedRules.AssignPtr()))
+ return;
+ }
+ PRInt32 index = mWeightedRules->Count();
while (0 <= --index) {
- nsICSSStyleRule* rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRule* rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
if (rule->GetWeight() > weight) { // insert before rules with equal or lesser weight
NS_RELEASE(rule);
break;
}
NS_RELEASE(rule);
}
- mRules->InsertElementAt(aRule, index + 1);
+ mWeightedRules->InsertElementAt(aRule, index + 1);
+ mOrderedRules->InsertElementAt(aRule, 0);
}
void CSSStyleSheetImpl::AppendStyleRule(nsICSSStyleRule* aRule)
@@ -759,21 +768,50 @@ void CSSStyleSheetImpl::AppendStyleRule(nsICSSStyleRule* aRule)
ClearHash();
//XXX replace this with a binary search?
PRInt32 weight = aRule->GetWeight();
- if (mRules.IsNull()) {
- if (NS_OK != NS_NewISupportsArray(mRules.AssignPtr()))
+ if (mWeightedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mWeightedRules.AssignPtr()))
return;
}
- PRInt32 count = mRules->Count();
+ if (mOrderedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mOrderedRules.AssignPtr()))
+ return;
+ }
+ PRInt32 count = mWeightedRules->Count();
PRInt32 index = -1;
while (++index < count) {
- nsICSSStyleRule* rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRule* rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
if (rule->GetWeight() < weight) { // insert after rules with equal or greater weight (before lower weight)
NS_RELEASE(rule);
break;
}
NS_RELEASE(rule);
}
- mRules->InsertElementAt(aRule, index);
+ mWeightedRules->InsertElementAt(aRule, index);
+ mOrderedRules->AppendElement(aRule);
+}
+
+PRInt32 CSSStyleSheetImpl::StyleRuleCount(void)
+{
+ if (mOrderedRules.IsNotNull()) {
+ return mOrderedRules->Count();
+ }
+ return 0;
+}
+
+nsresult CSSStyleSheetImpl::GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule)
+{
+ nsresult result = NS_ERROR_ILLEGAL_VALUE;
+
+ if (mOrderedRules.IsNotNull()) {
+ aRule = (nsICSSStyleRule*)mOrderedRules->ElementAt(aIndex);
+ if (nsnull != aRule) {
+ result = NS_OK;
+ }
+ }
+ else {
+ aRule = nsnull;
+ }
+ return result;
}
void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const
@@ -795,10 +833,10 @@ void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- PRInt32 count = (mRules.IsNotNull() ? mRules->Count() : 0);
+ PRInt32 count = (mWeightedRules.IsNotNull() ? mWeightedRules->Count() : 0);
for (index = 0; index < count; index++) {
- nsICSSStyleRulePtr rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRulePtr rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
rule->List(out, aIndent);
}
}
@@ -824,8 +862,8 @@ void CSSStyleSheetImpl::BuildHash(void)
NS_ASSERTION(nsnull == mRuleHash, "clear rule hash first");
mRuleHash = new RuleHash();
- if ((nsnull != mRuleHash) && mRules.IsNotNull()) {
- mRules->EnumerateForwards(BuildHashEnum, mRuleHash);
+ if ((nsnull != mRuleHash) && mWeightedRules.IsNotNull()) {
+ mWeightedRules->EnumerateForwards(BuildHashEnum, mRuleHash);
}
}
diff --git a/layout/style/nsCSSStyleSheet.cpp b/layout/style/nsCSSStyleSheet.cpp
index 9df70956930d..fa3e51e9a4f0 100644
--- a/layout/style/nsCSSStyleSheet.cpp
+++ b/layout/style/nsCSSStyleSheet.cpp
@@ -278,7 +278,8 @@ public:
virtual void PrependStyleRule(nsICSSStyleRule* aRule);
virtual void AppendStyleRule(nsICSSStyleRule* aRule);
- // XXX style rule enumerations
+ virtual PRInt32 StyleRuleCount(void);
+ virtual nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule);
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
@@ -299,7 +300,8 @@ protected:
nsIURLPtr mURL;
nsICSSStyleSheetPtr mFirstChild;
- nsISupportsArrayPtr mRules;
+ nsISupportsArrayPtr mOrderedRules;
+ nsISupportsArrayPtr mWeightedRules;
nsICSSStyleSheetPtr mNext;
RuleHash* mRuleHash;
};
@@ -345,7 +347,9 @@ static PRInt32 gInstanceCount;
CSSStyleSheetImpl::CSSStyleSheetImpl(nsIURL* aURL)
: nsICSSStyleSheet(),
- mURL(nsnull), mFirstChild(nsnull), mRules(nsnull), mNext(nsnull),
+ mURL(nsnull), mFirstChild(nsnull),
+ mOrderedRules(nsnull), mWeightedRules(nsnull),
+ mNext(nsnull),
mRuleHash(nsnull)
{
NS_INIT_REFCNT();
@@ -551,7 +555,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- if (mRules.IsNotNull()) {
+ if (mWeightedRules.IsNotNull()) {
if (nsnull == mRuleHash) {
BuildHash();
}
@@ -579,7 +583,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
data.mResults = list1;
mRuleHash->EnumerateAllRules(tagAtom, idAtom, classAtom, ContentEnumFunc, &data);
data.mResults = list2;
- mRules->EnumerateForwards(ContentEnumWrap, &data);
+ mWeightedRules->EnumerateForwards(ContentEnumWrap, &data);
NS_ASSERTION(list1->Equals(list2), "lists not equal");
NS_RELEASE(list1);
NS_RELEASE(list2);
@@ -669,7 +673,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- if (mRules.IsNotNull()) {
+ if (mWeightedRules.IsNotNull()) {
if (nsnull == mRuleHash) {
BuildHash();
}
@@ -685,7 +689,7 @@ PRInt32 CSSStyleSheetImpl::RulesMatching(nsIPresContext* aPresContext,
data.mResults = list1;
mRuleHash->EnumerateTagRules(aPseudoTag, PseudoEnumFunc, &data);
data.mResults = list2;
- mRules->EnumerateForwards(PseudoEnumWrap, &data);
+ mWeightedRules->EnumerateForwards(PseudoEnumWrap, &data);
NS_ASSERTION(list1->Equals(list2), "lists not equal");
NS_RELEASE(list1);
NS_RELEASE(list2);
@@ -736,20 +740,25 @@ void CSSStyleSheetImpl::PrependStyleRule(nsICSSStyleRule* aRule)
ClearHash();
//XXX replace this with a binary search?
PRInt32 weight = aRule->GetWeight();
- if (mRules.IsNull()) {
- if (NS_OK != NS_NewISupportsArray(mRules.AssignPtr()))
+ if (mWeightedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mWeightedRules.AssignPtr()))
return;
}
- PRInt32 index = mRules->Count();
+ if (mOrderedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mOrderedRules.AssignPtr()))
+ return;
+ }
+ PRInt32 index = mWeightedRules->Count();
while (0 <= --index) {
- nsICSSStyleRule* rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRule* rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
if (rule->GetWeight() > weight) { // insert before rules with equal or lesser weight
NS_RELEASE(rule);
break;
}
NS_RELEASE(rule);
}
- mRules->InsertElementAt(aRule, index + 1);
+ mWeightedRules->InsertElementAt(aRule, index + 1);
+ mOrderedRules->InsertElementAt(aRule, 0);
}
void CSSStyleSheetImpl::AppendStyleRule(nsICSSStyleRule* aRule)
@@ -759,21 +768,50 @@ void CSSStyleSheetImpl::AppendStyleRule(nsICSSStyleRule* aRule)
ClearHash();
//XXX replace this with a binary search?
PRInt32 weight = aRule->GetWeight();
- if (mRules.IsNull()) {
- if (NS_OK != NS_NewISupportsArray(mRules.AssignPtr()))
+ if (mWeightedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mWeightedRules.AssignPtr()))
return;
}
- PRInt32 count = mRules->Count();
+ if (mOrderedRules.IsNull()) {
+ if (NS_OK != NS_NewISupportsArray(mOrderedRules.AssignPtr()))
+ return;
+ }
+ PRInt32 count = mWeightedRules->Count();
PRInt32 index = -1;
while (++index < count) {
- nsICSSStyleRule* rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRule* rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
if (rule->GetWeight() < weight) { // insert after rules with equal or greater weight (before lower weight)
NS_RELEASE(rule);
break;
}
NS_RELEASE(rule);
}
- mRules->InsertElementAt(aRule, index);
+ mWeightedRules->InsertElementAt(aRule, index);
+ mOrderedRules->AppendElement(aRule);
+}
+
+PRInt32 CSSStyleSheetImpl::StyleRuleCount(void)
+{
+ if (mOrderedRules.IsNotNull()) {
+ return mOrderedRules->Count();
+ }
+ return 0;
+}
+
+nsresult CSSStyleSheetImpl::GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule)
+{
+ nsresult result = NS_ERROR_ILLEGAL_VALUE;
+
+ if (mOrderedRules.IsNotNull()) {
+ aRule = (nsICSSStyleRule*)mOrderedRules->ElementAt(aIndex);
+ if (nsnull != aRule) {
+ result = NS_OK;
+ }
+ }
+ else {
+ aRule = nsnull;
+ }
+ return result;
}
void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const
@@ -795,10 +833,10 @@ void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const
child = ((CSSStyleSheetImpl*)child)->mNext;
}
- PRInt32 count = (mRules.IsNotNull() ? mRules->Count() : 0);
+ PRInt32 count = (mWeightedRules.IsNotNull() ? mWeightedRules->Count() : 0);
for (index = 0; index < count; index++) {
- nsICSSStyleRulePtr rule = (nsICSSStyleRule*)mRules->ElementAt(index);
+ nsICSSStyleRulePtr rule = (nsICSSStyleRule*)mWeightedRules->ElementAt(index);
rule->List(out, aIndent);
}
}
@@ -824,8 +862,8 @@ void CSSStyleSheetImpl::BuildHash(void)
NS_ASSERTION(nsnull == mRuleHash, "clear rule hash first");
mRuleHash = new RuleHash();
- if ((nsnull != mRuleHash) && mRules.IsNotNull()) {
- mRules->EnumerateForwards(BuildHashEnum, mRuleHash);
+ if ((nsnull != mRuleHash) && mWeightedRules.IsNotNull()) {
+ mWeightedRules->EnumerateForwards(BuildHashEnum, mRuleHash);
}
}