diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
index 6b006efb078..3cb4b72cbd2 100644
--- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
+++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
@@ -922,25 +922,28 @@ nsGenericHTMLElement::HasClass(nsIAtom* aClass) const
}
nsresult
-nsGenericHTMLElement::GetContentStyleRule(nsIStyleRule*& aResult)
+nsGenericHTMLElement::GetContentStyleRules(nsISupportsArray* aRules)
{
nsresult result = NS_ERROR_NULL_POINTER;
nsIStyleRule* rule = nsnull;
- if (nsnull != mAttributes) {
+ if (aRules && mAttributes) {
result = mAttributes->QueryInterface(kIStyleRuleIID, (void**)&rule);
}
- aResult = rule;
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}
nsresult
-nsGenericHTMLElement::GetInlineStyleRule(nsIStyleRule*& aResult)
+nsGenericHTMLElement::GetInlineStyleRules(nsISupportsArray* aRules)
{
nsresult result = NS_ERROR_NULL_POINTER;
nsIStyleRule* rule = nsnull;
- if (nsnull != mAttributes) {
+ if (aRules && mAttributes) {
nsHTMLValue value;
if (NS_CONTENT_ATTR_HAS_VALUE == mAttributes->GetAttribute(nsHTMLAtoms::style, value)) {
if (eHTMLUnit_ISupports == value.GetUnit()) {
@@ -950,7 +953,10 @@ nsGenericHTMLElement::GetInlineStyleRule(nsIStyleRule*& aResult)
}
}
}
- aResult = rule;
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}
diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.h b/mozilla/content/html/content/src/nsGenericHTMLElement.h
index 8377b88e558..c202feae52d 100644
--- a/mozilla/content/html/content/src/nsGenericHTMLElement.h
+++ b/mozilla/content/html/content/src/nsGenericHTMLElement.h
@@ -110,8 +110,8 @@ public:
nsresult GetID(nsIAtom*& aResult) const;
nsresult GetClasses(nsVoidArray& aArray) const;
nsresult HasClass(nsIAtom* aClass) const;
- nsresult GetContentStyleRule(nsIStyleRule*& aResult);
- nsresult GetInlineStyleRule(nsIStyleRule*& aResult);
+ nsresult GetContentStyleRules(nsISupportsArray* aRules);
+ nsresult GetInlineStyleRules(nsISupportsArray* aRules);
nsresult GetBaseURL(nsIURL*& aBaseURL) const;
nsresult GetBaseTarget(nsString& aBaseTarget) const;
nsresult ToHTMLString(nsString& aResult) const;
@@ -434,11 +434,11 @@ public:
NS_IMETHOD HasClass(nsIAtom* aClass) const { \
return _g.HasClass(aClass); \
} \
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult) { \
- return _g.GetContentStyleRule(aResult); \
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules) { \
+ return _g.GetContentStyleRules(aRules); \
} \
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult) { \
- return _g.GetInlineStyleRule(aResult); \
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules) { \
+ return _g.GetInlineStyleRules(aRules); \
} \
NS_IMETHOD GetBaseURL(nsIURL*& aBaseURL) const { \
return _g.GetBaseURL(aBaseURL); \
@@ -484,8 +484,8 @@ public:
NS_IMETHOD HasClass(nsIAtom* aClass) const { \
return _g.HasClass(aClass); \
} \
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult); \
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult); \
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules); \
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules); \
NS_IMETHOD GetBaseURL(nsIURL*& aBaseURL) const { \
return _g.GetBaseURL(aBaseURL); \
} \
diff --git a/mozilla/content/html/content/src/nsHTMLBodyElement.cpp b/mozilla/content/html/content/src/nsHTMLBodyElement.cpp
index 7e44de6db7f..f6cfad3959d 100644
--- a/mozilla/content/html/content/src/nsHTMLBodyElement.cpp
+++ b/mozilla/content/html/content/src/nsHTMLBodyElement.cpp
@@ -37,6 +37,7 @@
#include "nsIWebShell.h"
#include "nsIHTMLAttributes.h"
#include "nsIHTMLContentContainer.h"
+#include "nsISupportsArray.h"
static NS_DEFINE_IID(kIHTMLDocumentIID, NS_IHTMLDOCUMENT_IID);
static NS_DEFINE_IID(kIStyleRuleIID, NS_ISTYLE_RULE_IID);
@@ -279,7 +280,6 @@ BodyRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
if (nsnull != styleSpacing) {
nsHTMLValue value;
- PRInt32 count = 0;
PRInt32 attrCount;
float p2t;
mPart->GetAttributeCount(attrCount);
@@ -298,7 +298,6 @@ BodyRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
nsStyleCoord widthCoord(bodyMarginWidth);
styleSpacing->mMargin.SetLeft(widthCoord);
styleSpacing->mMargin.SetRight(widthCoord);
- count++;
}
mPart->GetHTMLAttribute(nsHTMLAtoms::marginheight, value);
@@ -311,14 +310,6 @@ BodyRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
nsStyleCoord heightCoord(bodyMarginHeight);
styleSpacing->mMargin.SetTop(heightCoord);
styleSpacing->mMargin.SetBottom(heightCoord);
- count++;
- }
-
- if (count < attrCount) { // more to go...
- nsMapAttributesFunc fontFunc;
- nsMapAttributesFunc func;
- mPart->GetAttributeMappingFunctions(fontFunc, func);
- (*func)(mPart->mInner.mAttributes, aContext, aPresContext);
}
}
@@ -418,18 +409,6 @@ nsresult BodyFixupRule::QueryInterface(const nsIID& aIID,
NS_ADDREF_THIS();
return NS_OK;
}
- if (aIID.Equals(kICSSStyleRuleIID)) {
- nsIStyleRule* inlineRule = nsnull;
- if (nsnull != mPart) {
- mPart->mInner.GetInlineStyleRule(inlineRule);
- }
- if (nsnull != inlineRule) {
- nsresult result = inlineRule->QueryInterface(kICSSStyleRuleIID, aInstancePtrResult);
- NS_RELEASE(inlineRule);
- return result;
- }
- return NS_NOINTERFACE;
- }
if (aIID.Equals(kISupportsIID)) {
*aInstancePtrResult = (void*) ((nsISupports*)this);
NS_ADDREF_THIS();
@@ -477,16 +456,6 @@ BodyFixupRule::MapFontStyleInto(nsIStyleContext* aContext, nsIPresContext* aPres
NS_IMETHODIMP
BodyFixupRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
{
- // Invoke style mapping of inline rule
- nsIStyleRule* inlineRule = nsnull;
- if (nsnull != mPart) {
- mPart->mInner.GetInlineStyleRule(inlineRule);
- if (nsnull != inlineRule) {
- inlineRule->MapStyleInto(aContext, aPresContext);
- NS_RELEASE(inlineRule);
- }
- }
-
// XXX do any other body processing here
const nsStyleColor* styleColor;
@@ -731,27 +700,6 @@ MapAttributesInto(nsIHTMLAttributes* aAttributes,
}
}
- // marginwidth/marginheight
- // XXX: see ua.css for related code in the BODY rule
- float p2t;
- aPresContext->GetScaledPixelsToTwips(&p2t);
- nsStyleSpacing* spacing = (nsStyleSpacing*)
- aContext->GetMutableStyleData(eStyleStruct_Spacing);
- aAttributes->GetAttribute(nsHTMLAtoms::marginwidth, value);
- if (eHTMLUnit_Pixel == value.GetUnit()) {
- nscoord v = NSToCoordFloor(value.GetPixelValue() * p2t);
- nsStyleCoord c(v);
- spacing->mPadding.SetLeft(c);
- spacing->mPadding.SetRight(c);
- }
- aAttributes->GetAttribute(nsHTMLAtoms::marginheight, value);
- if (eHTMLUnit_Pixel == value.GetUnit()) {
- nscoord v = NSToCoordFloor(value.GetPixelValue() * p2t);
- nsStyleCoord c(v);
- spacing->mPadding.SetTop(c);
- spacing->mPadding.SetBottom(c);
- }
-
}
nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aContext, aPresContext);
}
@@ -794,8 +742,10 @@ static nsIHTMLStyleSheet* GetAttrStyleSheet(nsIDocument* aDocument)
}
NS_IMETHODIMP
-nsHTMLBodyElement::GetContentStyleRule(nsIStyleRule*& aResult)
+nsHTMLBodyElement::GetContentStyleRules(nsISupportsArray* aRules)
{
+ mInner.GetContentStyleRules(aRules);
+
if (nsnull == mInner.mContentStyleRule) {
nsIHTMLStyleSheet* sheet = nsnull;
@@ -807,8 +757,9 @@ nsHTMLBodyElement::GetContentStyleRule(nsIStyleRule*& aResult)
NS_IF_RELEASE(sheet);
NS_IF_ADDREF(mInner.mContentStyleRule);
}
- NS_IF_ADDREF(mInner.mContentStyleRule);
- aResult = mInner.mContentStyleRule;
+ if (aRules && mInner.mContentStyleRule) {
+ aRules->AppendElement(mInner.mContentStyleRule);
+ }
return NS_OK;
}
@@ -828,8 +779,10 @@ static nsIHTMLCSSStyleSheet* GetInlineStyleSheet(nsIDocument* aDocument)
}
NS_IMETHODIMP
-nsHTMLBodyElement::GetInlineStyleRule(nsIStyleRule*& aResult)
+nsHTMLBodyElement::GetInlineStyleRules(nsISupportsArray* aRules)
{
+ mInner.GetInlineStyleRules(aRules);
+
if (nsnull == mInner.mInlineStyleRule) {
nsIHTMLCSSStyleSheet* sheet = nsnull;
@@ -841,8 +794,9 @@ nsHTMLBodyElement::GetInlineStyleRule(nsIStyleRule*& aResult)
NS_IF_RELEASE(sheet);
NS_IF_ADDREF(mInner.mInlineStyleRule);
}
- NS_IF_ADDREF(mInner.mInlineStyleRule);
- aResult = mInner.mInlineStyleRule;
+ if (aRules && mInner.mInlineStyleRule) {
+ aRules->AppendElement(mInner.mInlineStyleRule);
+ }
return NS_OK;
}
diff --git a/mozilla/content/xul/content/src/nsXULElement.cpp b/mozilla/content/xul/content/src/nsXULElement.cpp
index 8876296f93c..0f231ab09d5 100644
--- a/mozilla/content/xul/content/src/nsXULElement.cpp
+++ b/mozilla/content/xul/content/src/nsXULElement.cpp
@@ -215,8 +215,8 @@ public:
NS_IMETHOD GetClasses(nsVoidArray& aArray) const;
NS_IMETHOD HasClass(nsIAtom* aClass) const;
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult);
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult);
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules);
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules);
/** NRA ***
* Get a hint that tells the style system what to do when
@@ -2702,20 +2702,23 @@ RDFElementImpl::HasClass(nsIAtom* aClass) const
}
NS_IMETHODIMP
-RDFElementImpl::GetContentStyleRule(nsIStyleRule*& aResult)
+RDFElementImpl::GetContentStyleRules(nsISupportsArray* aRules)
{
- aResult = nsnull;
return NS_OK;
}
NS_IMETHODIMP
-RDFElementImpl::GetInlineStyleRule(nsIStyleRule*& aResult)
+RDFElementImpl::GetInlineStyleRules(nsISupportsArray* aRules)
{
// Fetch the cached style rule from the attributes.
nsresult result = NS_ERROR_NULL_POINTER;
- aResult = nsnull;
- if (mAttributes != nsnull)
- result = mAttributes->GetInlineStyleRule(aResult);
+ nsIStyleRule* rule = nsnull;
+ if (aRules && mAttributes)
+ result = mAttributes->GetInlineStyleRule(rule);
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}
diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp
index 6b006efb078..3cb4b72cbd2 100644
--- a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp
+++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp
@@ -922,25 +922,28 @@ nsGenericHTMLElement::HasClass(nsIAtom* aClass) const
}
nsresult
-nsGenericHTMLElement::GetContentStyleRule(nsIStyleRule*& aResult)
+nsGenericHTMLElement::GetContentStyleRules(nsISupportsArray* aRules)
{
nsresult result = NS_ERROR_NULL_POINTER;
nsIStyleRule* rule = nsnull;
- if (nsnull != mAttributes) {
+ if (aRules && mAttributes) {
result = mAttributes->QueryInterface(kIStyleRuleIID, (void**)&rule);
}
- aResult = rule;
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}
nsresult
-nsGenericHTMLElement::GetInlineStyleRule(nsIStyleRule*& aResult)
+nsGenericHTMLElement::GetInlineStyleRules(nsISupportsArray* aRules)
{
nsresult result = NS_ERROR_NULL_POINTER;
nsIStyleRule* rule = nsnull;
- if (nsnull != mAttributes) {
+ if (aRules && mAttributes) {
nsHTMLValue value;
if (NS_CONTENT_ATTR_HAS_VALUE == mAttributes->GetAttribute(nsHTMLAtoms::style, value)) {
if (eHTMLUnit_ISupports == value.GetUnit()) {
@@ -950,7 +953,10 @@ nsGenericHTMLElement::GetInlineStyleRule(nsIStyleRule*& aResult)
}
}
}
- aResult = rule;
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}
diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.h b/mozilla/layout/html/content/src/nsGenericHTMLElement.h
index 8377b88e558..c202feae52d 100644
--- a/mozilla/layout/html/content/src/nsGenericHTMLElement.h
+++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.h
@@ -110,8 +110,8 @@ public:
nsresult GetID(nsIAtom*& aResult) const;
nsresult GetClasses(nsVoidArray& aArray) const;
nsresult HasClass(nsIAtom* aClass) const;
- nsresult GetContentStyleRule(nsIStyleRule*& aResult);
- nsresult GetInlineStyleRule(nsIStyleRule*& aResult);
+ nsresult GetContentStyleRules(nsISupportsArray* aRules);
+ nsresult GetInlineStyleRules(nsISupportsArray* aRules);
nsresult GetBaseURL(nsIURL*& aBaseURL) const;
nsresult GetBaseTarget(nsString& aBaseTarget) const;
nsresult ToHTMLString(nsString& aResult) const;
@@ -434,11 +434,11 @@ public:
NS_IMETHOD HasClass(nsIAtom* aClass) const { \
return _g.HasClass(aClass); \
} \
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult) { \
- return _g.GetContentStyleRule(aResult); \
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules) { \
+ return _g.GetContentStyleRules(aRules); \
} \
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult) { \
- return _g.GetInlineStyleRule(aResult); \
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules) { \
+ return _g.GetInlineStyleRules(aRules); \
} \
NS_IMETHOD GetBaseURL(nsIURL*& aBaseURL) const { \
return _g.GetBaseURL(aBaseURL); \
@@ -484,8 +484,8 @@ public:
NS_IMETHOD HasClass(nsIAtom* aClass) const { \
return _g.HasClass(aClass); \
} \
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult); \
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult); \
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules); \
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules); \
NS_IMETHOD GetBaseURL(nsIURL*& aBaseURL) const { \
return _g.GetBaseURL(aBaseURL); \
} \
diff --git a/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp b/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp
index 7e44de6db7f..f6cfad3959d 100644
--- a/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp
+++ b/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp
@@ -37,6 +37,7 @@
#include "nsIWebShell.h"
#include "nsIHTMLAttributes.h"
#include "nsIHTMLContentContainer.h"
+#include "nsISupportsArray.h"
static NS_DEFINE_IID(kIHTMLDocumentIID, NS_IHTMLDOCUMENT_IID);
static NS_DEFINE_IID(kIStyleRuleIID, NS_ISTYLE_RULE_IID);
@@ -279,7 +280,6 @@ BodyRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
if (nsnull != styleSpacing) {
nsHTMLValue value;
- PRInt32 count = 0;
PRInt32 attrCount;
float p2t;
mPart->GetAttributeCount(attrCount);
@@ -298,7 +298,6 @@ BodyRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
nsStyleCoord widthCoord(bodyMarginWidth);
styleSpacing->mMargin.SetLeft(widthCoord);
styleSpacing->mMargin.SetRight(widthCoord);
- count++;
}
mPart->GetHTMLAttribute(nsHTMLAtoms::marginheight, value);
@@ -311,14 +310,6 @@ BodyRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
nsStyleCoord heightCoord(bodyMarginHeight);
styleSpacing->mMargin.SetTop(heightCoord);
styleSpacing->mMargin.SetBottom(heightCoord);
- count++;
- }
-
- if (count < attrCount) { // more to go...
- nsMapAttributesFunc fontFunc;
- nsMapAttributesFunc func;
- mPart->GetAttributeMappingFunctions(fontFunc, func);
- (*func)(mPart->mInner.mAttributes, aContext, aPresContext);
}
}
@@ -418,18 +409,6 @@ nsresult BodyFixupRule::QueryInterface(const nsIID& aIID,
NS_ADDREF_THIS();
return NS_OK;
}
- if (aIID.Equals(kICSSStyleRuleIID)) {
- nsIStyleRule* inlineRule = nsnull;
- if (nsnull != mPart) {
- mPart->mInner.GetInlineStyleRule(inlineRule);
- }
- if (nsnull != inlineRule) {
- nsresult result = inlineRule->QueryInterface(kICSSStyleRuleIID, aInstancePtrResult);
- NS_RELEASE(inlineRule);
- return result;
- }
- return NS_NOINTERFACE;
- }
if (aIID.Equals(kISupportsIID)) {
*aInstancePtrResult = (void*) ((nsISupports*)this);
NS_ADDREF_THIS();
@@ -477,16 +456,6 @@ BodyFixupRule::MapFontStyleInto(nsIStyleContext* aContext, nsIPresContext* aPres
NS_IMETHODIMP
BodyFixupRule::MapStyleInto(nsIStyleContext* aContext, nsIPresContext* aPresContext)
{
- // Invoke style mapping of inline rule
- nsIStyleRule* inlineRule = nsnull;
- if (nsnull != mPart) {
- mPart->mInner.GetInlineStyleRule(inlineRule);
- if (nsnull != inlineRule) {
- inlineRule->MapStyleInto(aContext, aPresContext);
- NS_RELEASE(inlineRule);
- }
- }
-
// XXX do any other body processing here
const nsStyleColor* styleColor;
@@ -731,27 +700,6 @@ MapAttributesInto(nsIHTMLAttributes* aAttributes,
}
}
- // marginwidth/marginheight
- // XXX: see ua.css for related code in the BODY rule
- float p2t;
- aPresContext->GetScaledPixelsToTwips(&p2t);
- nsStyleSpacing* spacing = (nsStyleSpacing*)
- aContext->GetMutableStyleData(eStyleStruct_Spacing);
- aAttributes->GetAttribute(nsHTMLAtoms::marginwidth, value);
- if (eHTMLUnit_Pixel == value.GetUnit()) {
- nscoord v = NSToCoordFloor(value.GetPixelValue() * p2t);
- nsStyleCoord c(v);
- spacing->mPadding.SetLeft(c);
- spacing->mPadding.SetRight(c);
- }
- aAttributes->GetAttribute(nsHTMLAtoms::marginheight, value);
- if (eHTMLUnit_Pixel == value.GetUnit()) {
- nscoord v = NSToCoordFloor(value.GetPixelValue() * p2t);
- nsStyleCoord c(v);
- spacing->mPadding.SetTop(c);
- spacing->mPadding.SetBottom(c);
- }
-
}
nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aContext, aPresContext);
}
@@ -794,8 +742,10 @@ static nsIHTMLStyleSheet* GetAttrStyleSheet(nsIDocument* aDocument)
}
NS_IMETHODIMP
-nsHTMLBodyElement::GetContentStyleRule(nsIStyleRule*& aResult)
+nsHTMLBodyElement::GetContentStyleRules(nsISupportsArray* aRules)
{
+ mInner.GetContentStyleRules(aRules);
+
if (nsnull == mInner.mContentStyleRule) {
nsIHTMLStyleSheet* sheet = nsnull;
@@ -807,8 +757,9 @@ nsHTMLBodyElement::GetContentStyleRule(nsIStyleRule*& aResult)
NS_IF_RELEASE(sheet);
NS_IF_ADDREF(mInner.mContentStyleRule);
}
- NS_IF_ADDREF(mInner.mContentStyleRule);
- aResult = mInner.mContentStyleRule;
+ if (aRules && mInner.mContentStyleRule) {
+ aRules->AppendElement(mInner.mContentStyleRule);
+ }
return NS_OK;
}
@@ -828,8 +779,10 @@ static nsIHTMLCSSStyleSheet* GetInlineStyleSheet(nsIDocument* aDocument)
}
NS_IMETHODIMP
-nsHTMLBodyElement::GetInlineStyleRule(nsIStyleRule*& aResult)
+nsHTMLBodyElement::GetInlineStyleRules(nsISupportsArray* aRules)
{
+ mInner.GetInlineStyleRules(aRules);
+
if (nsnull == mInner.mInlineStyleRule) {
nsIHTMLCSSStyleSheet* sheet = nsnull;
@@ -841,8 +794,9 @@ nsHTMLBodyElement::GetInlineStyleRule(nsIStyleRule*& aResult)
NS_IF_RELEASE(sheet);
NS_IF_ADDREF(mInner.mInlineStyleRule);
}
- NS_IF_ADDREF(mInner.mInlineStyleRule);
- aResult = mInner.mInlineStyleRule;
+ if (aRules && mInner.mInlineStyleRule) {
+ aRules->AppendElement(mInner.mInlineStyleRule);
+ }
return NS_OK;
}
diff --git a/mozilla/rdf/content/src/nsRDFElement.cpp b/mozilla/rdf/content/src/nsRDFElement.cpp
index 8876296f93c..0f231ab09d5 100644
--- a/mozilla/rdf/content/src/nsRDFElement.cpp
+++ b/mozilla/rdf/content/src/nsRDFElement.cpp
@@ -215,8 +215,8 @@ public:
NS_IMETHOD GetClasses(nsVoidArray& aArray) const;
NS_IMETHOD HasClass(nsIAtom* aClass) const;
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult);
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult);
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules);
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules);
/** NRA ***
* Get a hint that tells the style system what to do when
@@ -2702,20 +2702,23 @@ RDFElementImpl::HasClass(nsIAtom* aClass) const
}
NS_IMETHODIMP
-RDFElementImpl::GetContentStyleRule(nsIStyleRule*& aResult)
+RDFElementImpl::GetContentStyleRules(nsISupportsArray* aRules)
{
- aResult = nsnull;
return NS_OK;
}
NS_IMETHODIMP
-RDFElementImpl::GetInlineStyleRule(nsIStyleRule*& aResult)
+RDFElementImpl::GetInlineStyleRules(nsISupportsArray* aRules)
{
// Fetch the cached style rule from the attributes.
nsresult result = NS_ERROR_NULL_POINTER;
- aResult = nsnull;
- if (mAttributes != nsnull)
- result = mAttributes->GetInlineStyleRule(aResult);
+ nsIStyleRule* rule = nsnull;
+ if (aRules && mAttributes)
+ result = mAttributes->GetInlineStyleRule(rule);
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}
diff --git a/mozilla/rdf/content/src/nsXULElement.cpp b/mozilla/rdf/content/src/nsXULElement.cpp
index 8876296f93c..0f231ab09d5 100644
--- a/mozilla/rdf/content/src/nsXULElement.cpp
+++ b/mozilla/rdf/content/src/nsXULElement.cpp
@@ -215,8 +215,8 @@ public:
NS_IMETHOD GetClasses(nsVoidArray& aArray) const;
NS_IMETHOD HasClass(nsIAtom* aClass) const;
- NS_IMETHOD GetContentStyleRule(nsIStyleRule*& aResult);
- NS_IMETHOD GetInlineStyleRule(nsIStyleRule*& aResult);
+ NS_IMETHOD GetContentStyleRules(nsISupportsArray* aRules);
+ NS_IMETHOD GetInlineStyleRules(nsISupportsArray* aRules);
/** NRA ***
* Get a hint that tells the style system what to do when
@@ -2702,20 +2702,23 @@ RDFElementImpl::HasClass(nsIAtom* aClass) const
}
NS_IMETHODIMP
-RDFElementImpl::GetContentStyleRule(nsIStyleRule*& aResult)
+RDFElementImpl::GetContentStyleRules(nsISupportsArray* aRules)
{
- aResult = nsnull;
return NS_OK;
}
NS_IMETHODIMP
-RDFElementImpl::GetInlineStyleRule(nsIStyleRule*& aResult)
+RDFElementImpl::GetInlineStyleRules(nsISupportsArray* aRules)
{
// Fetch the cached style rule from the attributes.
nsresult result = NS_ERROR_NULL_POINTER;
- aResult = nsnull;
- if (mAttributes != nsnull)
- result = mAttributes->GetInlineStyleRule(aResult);
+ nsIStyleRule* rule = nsnull;
+ if (aRules && mAttributes)
+ result = mAttributes->GetInlineStyleRule(rule);
+ if (rule) {
+ aRules->AppendElement(rule);
+ NS_RELEASE(rule);
+ }
return result;
}