Index: Source/core/xml/XPathStep.cpp |
diff --git a/Source/core/xml/XPathStep.cpp b/Source/core/xml/XPathStep.cpp |
index c6fdc805b483a292fc3466fcb900133f1af6dda6..1fbe1972b70b391a4ca2cf96e77f1f64b8ea1195 100644 |
--- a/Source/core/xml/XPathStep.cpp |
+++ b/Source/core/xml/XPathStep.cpp |
@@ -360,9 +360,10 @@ void Step::nodesInAxis(Node* context, NodeSet& nodes) const |
if (!contextElement->hasAttributes()) |
return; |
- unsigned attributeCount = contextElement->attributeCount(); |
- for (unsigned i = 0; i < attributeCount; ++i) { |
- RefPtrWillBeRawPtr<Attr> attr = contextElement->ensureAttr(contextElement->attributeItem(i).name()); |
+ AttributeIteratorAccessor attributes = contextElement->attributesIterator(); |
+ AttributeConstIterator end = attributes.end(); |
+ for (AttributeConstIterator it = attributes.begin(); it != end; ++it) { |
+ RefPtrWillBeRawPtr<Attr> attr = contextElement->ensureAttr(it->name()); |
if (nodeMatches(attr.get(), AttributeAxis, nodeTest())) |
nodes.append(attr.release()); |
} |