| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * Copyright (C) 2003-2008, 2011, 2012, 2014 Apple Inc. All rights reserved. | 4 * Copyright (C) 2003-2008, 2011, 2012, 2014 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2014 Samsung Electronics. All rights reserved. | 5 * Copyright (C) 2014 Samsung Electronics. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 // 3. Return result. | 450 // 3. Return result. |
| 451 HashSet<AtomicString> existingNames; | 451 HashSet<AtomicString> existingNames; |
| 452 unsigned length = this->length(); | 452 unsigned length = this->length(); |
| 453 for (unsigned i = 0; i < length; ++i) { | 453 for (unsigned i = 0; i < length; ++i) { |
| 454 Element* element = item(i); | 454 Element* element = item(i); |
| 455 const AtomicString& idAttribute = element->getIdAttribute(); | 455 const AtomicString& idAttribute = element->getIdAttribute(); |
| 456 if (!idAttribute.isEmpty()) { | 456 if (!idAttribute.isEmpty()) { |
| 457 HashSet<AtomicString>::AddResult addResult = | 457 HashSet<AtomicString>::AddResult addResult = |
| 458 existingNames.add(idAttribute); | 458 existingNames.add(idAttribute); |
| 459 if (addResult.isNewEntry) | 459 if (addResult.isNewEntry) |
| 460 names.append(idAttribute); | 460 names.push_back(idAttribute); |
| 461 } | 461 } |
| 462 if (!element->isHTMLElement()) | 462 if (!element->isHTMLElement()) |
| 463 continue; | 463 continue; |
| 464 const AtomicString& nameAttribute = element->getNameAttribute(); | 464 const AtomicString& nameAttribute = element->getNameAttribute(); |
| 465 if (!nameAttribute.isEmpty() && | 465 if (!nameAttribute.isEmpty() && |
| 466 (type() != DocAll || | 466 (type() != DocAll || |
| 467 nameShouldBeVisibleInDocumentAll(toHTMLElement(*element)))) { | 467 nameShouldBeVisibleInDocumentAll(toHTMLElement(*element)))) { |
| 468 HashSet<AtomicString>::AddResult addResult = | 468 HashSet<AtomicString>::AddResult addResult = |
| 469 existingNames.add(nameAttribute); | 469 existingNames.add(nameAttribute); |
| 470 if (addResult.isNewEntry) | 470 if (addResult.isNewEntry) |
| 471 names.append(nameAttribute); | 471 names.push_back(nameAttribute); |
| 472 } | 472 } |
| 473 } | 473 } |
| 474 } | 474 } |
| 475 | 475 |
| 476 void HTMLCollection::namedPropertyEnumerator(Vector<String>& names, | 476 void HTMLCollection::namedPropertyEnumerator(Vector<String>& names, |
| 477 ExceptionState&) { | 477 ExceptionState&) { |
| 478 supportedPropertyNames(names); | 478 supportedPropertyNames(names); |
| 479 } | 479 } |
| 480 | 480 |
| 481 void HTMLCollection::updateIdNameCache() const { | 481 void HTMLCollection::updateIdNameCache() const { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 506 HeapVector<Member<Element>>& result) const { | 506 HeapVector<Member<Element>>& result) const { |
| 507 DCHECK(result.isEmpty()); | 507 DCHECK(result.isEmpty()); |
| 508 if (name.isEmpty()) | 508 if (name.isEmpty()) |
| 509 return; | 509 return; |
| 510 | 510 |
| 511 updateIdNameCache(); | 511 updateIdNameCache(); |
| 512 | 512 |
| 513 const NamedItemCache& cache = namedItemCache(); | 513 const NamedItemCache& cache = namedItemCache(); |
| 514 if (HeapVector<Member<Element>>* idResults = cache.getElementsById(name)) { | 514 if (HeapVector<Member<Element>>* idResults = cache.getElementsById(name)) { |
| 515 for (const auto& element : *idResults) | 515 for (const auto& element : *idResults) |
| 516 result.append(element); | 516 result.push_back(element); |
| 517 } | 517 } |
| 518 if (HeapVector<Member<Element>>* nameResults = | 518 if (HeapVector<Member<Element>>* nameResults = |
| 519 cache.getElementsByName(name)) { | 519 cache.getElementsByName(name)) { |
| 520 for (const auto& element : *nameResults) | 520 for (const auto& element : *nameResults) |
| 521 result.append(element); | 521 result.push_back(element); |
| 522 } | 522 } |
| 523 } | 523 } |
| 524 | 524 |
| 525 HTMLCollection::NamedItemCache::NamedItemCache() {} | 525 HTMLCollection::NamedItemCache::NamedItemCache() {} |
| 526 | 526 |
| 527 DEFINE_TRACE(HTMLCollection) { | 527 DEFINE_TRACE(HTMLCollection) { |
| 528 visitor->trace(m_namedItemCache); | 528 visitor->trace(m_namedItemCache); |
| 529 visitor->trace(m_collectionItemsCache); | 529 visitor->trace(m_collectionItemsCache); |
| 530 LiveNodeListBase::trace(visitor); | 530 LiveNodeListBase::trace(visitor); |
| 531 } | 531 } |
| 532 | 532 |
| 533 } // namespace blink | 533 } // namespace blink |
| OLD | NEW |