Make SelectorMatches() faster by eleminating a few function calls

r=Shaver
Tree is green enough = waterson


git-svn-id: svn://10.0.0.236/trunk@58871 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jim_nance%yahoo.com 2000-01-27 02:28:52 +00:00
parent d400676ed4
commit 723d9997d5
3 changed files with 36 additions and 15 deletions

View File

@ -2295,12 +2295,19 @@ static PRBool SelectorMatches(nsIPresContext* aPresContext,
{
PRBool result = PR_FALSE;
nsIAtom* contentTag;
aContent->GetTag(contentTag);
PRInt32 nameSpaceID;
aContent->GetNameSpaceID(nameSpaceID);
if (((nsnull == aSelector->mTag) || (aSelector->mTag == contentTag)) &&
((kNameSpaceID_Unknown == aSelector->mNameSpace) || (nameSpaceID == aSelector->mNameSpace))) {
// Bail out early if we can
if(kNameSpaceID_Unknown != aSelector->mNameSpace) {
PRInt32 nameSpaceID;
aContent->GetNameSpaceID(nameSpaceID);
if(nameSpaceID != aSelector->mNameSpace) {
return result;
}
}
aContent->GetTag(contentTag);
if (((nsnull == aSelector->mTag) || (aSelector->mTag == contentTag))) {
result = PR_TRUE;
// namespace/tag match
if (nsnull != aSelector->mAttrList) { // test for attribute match

View File

@ -2295,12 +2295,19 @@ static PRBool SelectorMatches(nsIPresContext* aPresContext,
{
PRBool result = PR_FALSE;
nsIAtom* contentTag;
aContent->GetTag(contentTag);
PRInt32 nameSpaceID;
aContent->GetNameSpaceID(nameSpaceID);
if (((nsnull == aSelector->mTag) || (aSelector->mTag == contentTag)) &&
((kNameSpaceID_Unknown == aSelector->mNameSpace) || (nameSpaceID == aSelector->mNameSpace))) {
// Bail out early if we can
if(kNameSpaceID_Unknown != aSelector->mNameSpace) {
PRInt32 nameSpaceID;
aContent->GetNameSpaceID(nameSpaceID);
if(nameSpaceID != aSelector->mNameSpace) {
return result;
}
}
aContent->GetTag(contentTag);
if (((nsnull == aSelector->mTag) || (aSelector->mTag == contentTag))) {
result = PR_TRUE;
// namespace/tag match
if (nsnull != aSelector->mAttrList) { // test for attribute match

View File

@ -2295,12 +2295,19 @@ static PRBool SelectorMatches(nsIPresContext* aPresContext,
{
PRBool result = PR_FALSE;
nsIAtom* contentTag;
aContent->GetTag(contentTag);
PRInt32 nameSpaceID;
aContent->GetNameSpaceID(nameSpaceID);
if (((nsnull == aSelector->mTag) || (aSelector->mTag == contentTag)) &&
((kNameSpaceID_Unknown == aSelector->mNameSpace) || (nameSpaceID == aSelector->mNameSpace))) {
// Bail out early if we can
if(kNameSpaceID_Unknown != aSelector->mNameSpace) {
PRInt32 nameSpaceID;
aContent->GetNameSpaceID(nameSpaceID);
if(nameSpaceID != aSelector->mNameSpace) {
return result;
}
}
aContent->GetTag(contentTag);
if (((nsnull == aSelector->mTag) || (aSelector->mTag == contentTag))) {
result = PR_TRUE;
// namespace/tag match
if (nsnull != aSelector->mAttrList) { // test for attribute match