зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1382372: Add a fast-path for matching attr selectors with the empty namespace. r=bz
MozReview-Commit-ID: GSr0oGJJZRM
This commit is contained in:
Родитель
e2f2e8e9c0
Коммит
c02bd43974
|
@ -937,13 +937,19 @@ template <typename Implementor, typename MatchFn>
|
|||
static bool
|
||||
DoMatch(Implementor* aElement, nsIAtom* aNS, nsIAtom* aName, MatchFn aMatch)
|
||||
{
|
||||
if (aNS) {
|
||||
int32_t ns = nsContentUtils::NameSpaceManager()->GetNameSpaceID(aNS,
|
||||
aElement->IsInChromeDocument());
|
||||
if (MOZ_LIKELY(aNS)) {
|
||||
int32_t ns = aNS == nsGkAtoms::_empty
|
||||
? kNameSpaceID_None
|
||||
: nsContentUtils::NameSpaceManager()->GetNameSpaceID(
|
||||
aNS, aElement->IsInChromeDocument());
|
||||
|
||||
MOZ_ASSERT(ns == nsContentUtils::NameSpaceManager()->GetNameSpaceID(
|
||||
aNS, aElement->IsInChromeDocument()));
|
||||
NS_ENSURE_TRUE(ns != kNameSpaceID_Unknown, false);
|
||||
const nsAttrValue* value = aElement->GetParsedAttr(aName, ns);
|
||||
return value && aMatch(value);
|
||||
}
|
||||
|
||||
// No namespace means any namespace - we have to check them all. :-(
|
||||
BorrowedAttrInfo attrInfo;
|
||||
for (uint32_t i = 0; (attrInfo = aElement->GetAttrInfoAt(i)); ++i) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче