Index: Source/core/xml/XPathStep.cpp |
diff --git a/Source/core/xml/XPathStep.cpp b/Source/core/xml/XPathStep.cpp |
index bf490bab10b51c75580ffcfcabfaf721046bf013..a6ec7764749e1dda19ea1117df1f35f6edb98d64 100644 |
--- a/Source/core/xml/XPathStep.cpp |
+++ b/Source/core/xml/XPathStep.cpp |
@@ -357,9 +357,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()); |
} |