mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Remove change hints from CSS parser and replace with boolean indicating whether there was a change, computed a much simpler way. b=158713 r+sr=bzbarsky
This commit is contained in:
parent
8bf13d8ca8
commit
97c994908a
@ -39,7 +39,6 @@
|
||||
#define nsCSS1Parser_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsChangeHint.h"
|
||||
#include "nsAString.h"
|
||||
|
||||
class nsIStyleRule;
|
||||
@ -91,7 +90,7 @@ public:
|
||||
nsIURI* aBaseURL,
|
||||
nsCSSDeclaration* aDeclaration,
|
||||
PRBool aParseOnlyOneDecl,
|
||||
nsChangeHint* aHint,
|
||||
PRBool* aChanged,
|
||||
PRBool aClearOldDecl) = 0;
|
||||
|
||||
NS_IMETHOD ParseRule(const nsAString& aRule,
|
||||
@ -102,7 +101,7 @@ public:
|
||||
const nsAString& aPropValue,
|
||||
nsIURI* aBaseURL,
|
||||
nsCSSDeclaration* aDeclaration,
|
||||
nsChangeHint* aHint) = 0;
|
||||
PRBool* aChanged) = 0;
|
||||
};
|
||||
|
||||
nsresult
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -122,6 +122,20 @@ nsCSSValueList::~nsCSSValueList(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSValueList::Equal(nsCSSValueList* aList1, nsCSSValueList* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSValueList *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mValue != p2->mValue)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
// --- nsCSSColor -----------------
|
||||
|
||||
nsCSSColor::nsCSSColor(void)
|
||||
@ -196,6 +210,23 @@ nsCSSShadow::~nsCSSShadow(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSShadow::Equal(nsCSSShadow* aList1, nsCSSShadow* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSShadow *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mColor != p2->mColor ||
|
||||
p1->mXOffset != p2->mXOffset ||
|
||||
p1->mYOffset != p2->mYOffset ||
|
||||
p1->mRadius != p2->mRadius)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
// --- nsCSSText -----------------
|
||||
|
||||
nsCSSText::nsCSSText(void)
|
||||
@ -827,6 +858,21 @@ nsCSSCounterData::~nsCSSCounterData(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSCounterData::Equal(nsCSSCounterData* aList1, nsCSSCounterData* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSCounterData *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mCounter != p2->mCounter ||
|
||||
p1->mValue != p2->mValue)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
nsCSSQuotes::nsCSSQuotes(void)
|
||||
: mNext(nsnull)
|
||||
{
|
||||
@ -848,6 +894,21 @@ nsCSSQuotes::~nsCSSQuotes(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSQuotes::Equal(nsCSSQuotes* aList1, nsCSSQuotes* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSQuotes *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mOpen != p2->mOpen ||
|
||||
p1->mClose != p2->mClose)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
// --- nsCSSContent -----------------
|
||||
|
||||
nsCSSContent::nsCSSContent(void)
|
||||
|
@ -82,6 +82,8 @@ struct nsCSSValueList {
|
||||
nsCSSValueList(const nsCSSValueList& aCopy);
|
||||
~nsCSSValueList(void);
|
||||
|
||||
static PRBool Equal(nsCSSValueList* aList1, nsCSSValueList* aList2);
|
||||
|
||||
nsCSSValue mValue;
|
||||
nsCSSValueList* mNext;
|
||||
};
|
||||
@ -114,6 +116,8 @@ struct nsCSSShadow {
|
||||
nsCSSShadow(const nsCSSShadow& aCopy);
|
||||
~nsCSSShadow(void);
|
||||
|
||||
static PRBool Equal(nsCSSShadow* aList1, nsCSSShadow* aList2);
|
||||
|
||||
nsCSSValue mColor;
|
||||
nsCSSValue mXOffset;
|
||||
nsCSSValue mYOffset;
|
||||
@ -366,6 +370,8 @@ struct nsCSSCounterData {
|
||||
nsCSSCounterData(const nsCSSCounterData& aCopy);
|
||||
~nsCSSCounterData(void);
|
||||
|
||||
static PRBool Equal(nsCSSCounterData* aList1, nsCSSCounterData* aList2);
|
||||
|
||||
nsCSSValue mCounter;
|
||||
nsCSSValue mValue;
|
||||
nsCSSCounterData* mNext;
|
||||
@ -376,6 +382,8 @@ struct nsCSSQuotes {
|
||||
nsCSSQuotes(const nsCSSQuotes& aCopy);
|
||||
~nsCSSQuotes(void);
|
||||
|
||||
static PRBool Equal(nsCSSQuotes* aList1, nsCSSQuotes* aList2);
|
||||
|
||||
nsCSSValue mOpen;
|
||||
nsCSSValue mClose;
|
||||
nsCSSQuotes* mNext;
|
||||
|
@ -281,10 +281,10 @@ nsDOMCSSDeclaration::ParsePropertyValue(const nsAString& aPropName,
|
||||
return result;
|
||||
}
|
||||
|
||||
nsChangeHint uselessHint = NS_STYLE_HINT_NONE;
|
||||
PRBool changed;
|
||||
result = cssParser->ParseProperty(aPropName, aPropValue, baseURI, decl,
|
||||
&uselessHint);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
&changed);
|
||||
if (NS_SUCCEEDED(result) && changed) {
|
||||
result = DeclarationChanged();
|
||||
}
|
||||
|
||||
@ -318,13 +318,13 @@ nsDOMCSSDeclaration::ParseDeclaration(const nsAString& aDecl,
|
||||
return result;
|
||||
}
|
||||
|
||||
nsChangeHint uselessHint = NS_STYLE_HINT_NONE;
|
||||
PRBool changed;
|
||||
result = cssParser->ParseAndAppendDeclaration(aDecl, baseURI, decl,
|
||||
aParseOnlyOneDecl,
|
||||
&uselessHint,
|
||||
&changed,
|
||||
aClearOldDecl);
|
||||
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
if (NS_SUCCEEDED(result) && changed) {
|
||||
result = DeclarationChanged();
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -122,6 +122,20 @@ nsCSSValueList::~nsCSSValueList(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSValueList::Equal(nsCSSValueList* aList1, nsCSSValueList* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSValueList *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mValue != p2->mValue)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
// --- nsCSSColor -----------------
|
||||
|
||||
nsCSSColor::nsCSSColor(void)
|
||||
@ -196,6 +210,23 @@ nsCSSShadow::~nsCSSShadow(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSShadow::Equal(nsCSSShadow* aList1, nsCSSShadow* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSShadow *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mColor != p2->mColor ||
|
||||
p1->mXOffset != p2->mXOffset ||
|
||||
p1->mYOffset != p2->mYOffset ||
|
||||
p1->mRadius != p2->mRadius)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
// --- nsCSSText -----------------
|
||||
|
||||
nsCSSText::nsCSSText(void)
|
||||
@ -827,6 +858,21 @@ nsCSSCounterData::~nsCSSCounterData(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSCounterData::Equal(nsCSSCounterData* aList1, nsCSSCounterData* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSCounterData *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mCounter != p2->mCounter ||
|
||||
p1->mValue != p2->mValue)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
nsCSSQuotes::nsCSSQuotes(void)
|
||||
: mNext(nsnull)
|
||||
{
|
||||
@ -848,6 +894,21 @@ nsCSSQuotes::~nsCSSQuotes(void)
|
||||
CSS_IF_DELETE(mNext);
|
||||
}
|
||||
|
||||
/* static */ PRBool
|
||||
nsCSSQuotes::Equal(nsCSSQuotes* aList1, nsCSSQuotes* aList2)
|
||||
{
|
||||
if (aList1 == aList2)
|
||||
return PR_TRUE;
|
||||
|
||||
nsCSSQuotes *p1 = aList1, *p2 = aList2;
|
||||
for ( ; p1 && p2; p1 = p1->mNext, p2 = p2->mNext) {
|
||||
if (p1->mOpen != p2->mOpen ||
|
||||
p1->mClose != p2->mClose)
|
||||
return PR_FALSE;
|
||||
}
|
||||
return !p1 && !p2; // true if same length, false otherwise
|
||||
}
|
||||
|
||||
// --- nsCSSContent -----------------
|
||||
|
||||
nsCSSContent::nsCSSContent(void)
|
||||
|
@ -82,6 +82,8 @@ struct nsCSSValueList {
|
||||
nsCSSValueList(const nsCSSValueList& aCopy);
|
||||
~nsCSSValueList(void);
|
||||
|
||||
static PRBool Equal(nsCSSValueList* aList1, nsCSSValueList* aList2);
|
||||
|
||||
nsCSSValue mValue;
|
||||
nsCSSValueList* mNext;
|
||||
};
|
||||
@ -114,6 +116,8 @@ struct nsCSSShadow {
|
||||
nsCSSShadow(const nsCSSShadow& aCopy);
|
||||
~nsCSSShadow(void);
|
||||
|
||||
static PRBool Equal(nsCSSShadow* aList1, nsCSSShadow* aList2);
|
||||
|
||||
nsCSSValue mColor;
|
||||
nsCSSValue mXOffset;
|
||||
nsCSSValue mYOffset;
|
||||
@ -366,6 +370,8 @@ struct nsCSSCounterData {
|
||||
nsCSSCounterData(const nsCSSCounterData& aCopy);
|
||||
~nsCSSCounterData(void);
|
||||
|
||||
static PRBool Equal(nsCSSCounterData* aList1, nsCSSCounterData* aList2);
|
||||
|
||||
nsCSSValue mCounter;
|
||||
nsCSSValue mValue;
|
||||
nsCSSCounterData* mNext;
|
||||
@ -376,6 +382,8 @@ struct nsCSSQuotes {
|
||||
nsCSSQuotes(const nsCSSQuotes& aCopy);
|
||||
~nsCSSQuotes(void);
|
||||
|
||||
static PRBool Equal(nsCSSQuotes* aList1, nsCSSQuotes* aList2);
|
||||
|
||||
nsCSSValue mOpen;
|
||||
nsCSSValue mClose;
|
||||
nsCSSQuotes* mNext;
|
||||
|
@ -281,10 +281,10 @@ nsDOMCSSDeclaration::ParsePropertyValue(const nsAString& aPropName,
|
||||
return result;
|
||||
}
|
||||
|
||||
nsChangeHint uselessHint = NS_STYLE_HINT_NONE;
|
||||
PRBool changed;
|
||||
result = cssParser->ParseProperty(aPropName, aPropValue, baseURI, decl,
|
||||
&uselessHint);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
&changed);
|
||||
if (NS_SUCCEEDED(result) && changed) {
|
||||
result = DeclarationChanged();
|
||||
}
|
||||
|
||||
@ -318,13 +318,13 @@ nsDOMCSSDeclaration::ParseDeclaration(const nsAString& aDecl,
|
||||
return result;
|
||||
}
|
||||
|
||||
nsChangeHint uselessHint = NS_STYLE_HINT_NONE;
|
||||
PRBool changed;
|
||||
result = cssParser->ParseAndAppendDeclaration(aDecl, baseURI, decl,
|
||||
aParseOnlyOneDecl,
|
||||
&uselessHint,
|
||||
&changed,
|
||||
aClearOldDecl);
|
||||
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
if (NS_SUCCEEDED(result) && changed) {
|
||||
result = DeclarationChanged();
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,6 @@
|
||||
#define nsCSS1Parser_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsChangeHint.h"
|
||||
#include "nsAString.h"
|
||||
|
||||
class nsIStyleRule;
|
||||
@ -91,7 +90,7 @@ public:
|
||||
nsIURI* aBaseURL,
|
||||
nsCSSDeclaration* aDeclaration,
|
||||
PRBool aParseOnlyOneDecl,
|
||||
nsChangeHint* aHint,
|
||||
PRBool* aChanged,
|
||||
PRBool aClearOldDecl) = 0;
|
||||
|
||||
NS_IMETHOD ParseRule(const nsAString& aRule,
|
||||
@ -102,7 +101,7 @@ public:
|
||||
const nsAString& aPropValue,
|
||||
nsIURI* aBaseURL,
|
||||
nsCSSDeclaration* aDeclaration,
|
||||
nsChangeHint* aHint) = 0;
|
||||
PRBool* aChanged) = 0;
|
||||
};
|
||||
|
||||
nsresult
|
||||
|
Loading…
Reference in New Issue
Block a user