OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 2 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 if (nodes.contains(n)) | 221 if (nodes.contains(n)) |
222 sortedNodes.append(n); | 222 sortedNodes.append(n); |
223 | 223 |
224 if (!containsAttributeNodes || !n->isElementNode()) | 224 if (!containsAttributeNodes || !n->isElementNode()) |
225 continue; | 225 continue; |
226 | 226 |
227 Element* element = toElement(n); | 227 Element* element = toElement(n); |
228 if (!element->hasAttributes()) | 228 if (!element->hasAttributes()) |
229 continue; | 229 continue; |
230 | 230 |
231 unsigned attributeCount = element->attributeCount(); | 231 AttributeIteratorAccessor attributes = element->attributesIterator(); |
232 for (unsigned i = 0; i < attributeCount; ++i) { | 232 AttributeConstIterator end = attributes.end(); |
233 RefPtrWillBeRawPtr<Attr> attr = element->attrIfExists(element->attri
buteItem(i).name()); | 233 for (AttributeConstIterator it = attributes.begin(); it != end; ++it) { |
| 234 RefPtrWillBeRawPtr<Attr> attr = element->attrIfExists(it->name()); |
234 if (attr && nodes.contains(attr.get())) | 235 if (attr && nodes.contains(attr.get())) |
235 sortedNodes.append(attr); | 236 sortedNodes.append(attr); |
236 } | 237 } |
237 } | 238 } |
238 | 239 |
239 ASSERT(sortedNodes.size() == nodeCount); | 240 ASSERT(sortedNodes.size() == nodeCount); |
240 const_cast<WillBeHeapVector<RefPtrWillBeMember<Node> >&>(m_nodes).swap(sorte
dNodes); | 241 const_cast<WillBeHeapVector<RefPtrWillBeMember<Node> >&>(m_nodes).swap(sorte
dNodes); |
241 } | 242 } |
242 | 243 |
243 void NodeSet::reverse() | 244 void NodeSet::reverse() |
(...skipping 22 matching lines...) Expand all Loading... |
266 Node* NodeSet::anyNode() const | 267 Node* NodeSet::anyNode() const |
267 { | 268 { |
268 if (isEmpty()) | 269 if (isEmpty()) |
269 return 0; | 270 return 0; |
270 | 271 |
271 return m_nodes.at(0).get(); | 272 return m_nodes.at(0).get(); |
272 } | 273 } |
273 | 274 |
274 } | 275 } |
275 } | 276 } |
OLD | NEW |