Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: Source/core/html/HTMLFormElement.cpp

Issue 642973003: Introduce typed Node/Element iterators for range-based for loops of C++11. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rename `from` to `fromNext`. Make some parameters const references. Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 } 615 }
616 616
617 PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFormElement::elements() 617 PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFormElement::elements()
618 { 618 {
619 return ensureCachedCollection<HTMLFormControlsCollection>(FormControls); 619 return ensureCachedCollection<HTMLFormControlsCollection>(FormControls);
620 } 620 }
621 621
622 void HTMLFormElement::collectAssociatedElements(Node& root, FormAssociatedElemen t::List& elements) const 622 void HTMLFormElement::collectAssociatedElements(Node& root, FormAssociatedElemen t::List& elements) const
623 { 623 {
624 elements.clear(); 624 elements.clear();
625 for (HTMLElement* element = Traversal<HTMLElement>::firstWithin(root); eleme nt; element = Traversal<HTMLElement>::next(*element)) { 625 for (HTMLElement& element : Traversal<HTMLElement>::fromNext(root)) {
626 FormAssociatedElement* associatedElement = 0; 626 FormAssociatedElement* associatedElement = 0;
627 if (element->isFormControlElement()) 627 if (element.isFormControlElement())
628 associatedElement = toHTMLFormControlElement(element); 628 associatedElement = toHTMLFormControlElement(&element);
629 else if (isHTMLObjectElement(*element)) 629 else if (isHTMLObjectElement(element))
630 associatedElement = toHTMLObjectElement(element); 630 associatedElement = toHTMLObjectElement(&element);
631 else 631 else
632 continue; 632 continue;
633 if (associatedElement->form()== this) 633 if (associatedElement->form()== this)
634 elements.append(associatedElement); 634 elements.append(associatedElement);
635 } 635 }
636 } 636 }
637 637
638 // This function should be const conceptually. However we update some fields 638 // This function should be const conceptually. However we update some fields
639 // because of lazy evaluation. 639 // because of lazy evaluation.
640 const FormAssociatedElement::List& HTMLFormElement::associatedElements() const 640 const FormAssociatedElement::List& HTMLFormElement::associatedElements() const
641 { 641 {
642 if (!m_associatedElementsAreDirty) 642 if (!m_associatedElementsAreDirty)
643 return m_associatedElements; 643 return m_associatedElements;
644 HTMLFormElement* mutableThis = const_cast<HTMLFormElement*>(this); 644 HTMLFormElement* mutableThis = const_cast<HTMLFormElement*>(this);
645 Node* scope = mutableThis; 645 Node* scope = mutableThis;
646 if (m_hasElementsAssociatedByParser) 646 if (m_hasElementsAssociatedByParser)
647 scope = &NodeTraversal::highestAncestorOrSelf(*mutableThis); 647 scope = &NodeTraversal::highestAncestorOrSelf(*mutableThis);
648 if (inDocument() && treeScope().idTargetObserverRegistry().hasObservers(fast GetAttribute(idAttr))) 648 if (inDocument() && treeScope().idTargetObserverRegistry().hasObservers(fast GetAttribute(idAttr)))
649 scope = &treeScope().rootNode(); 649 scope = &treeScope().rootNode();
650 ASSERT(scope); 650 ASSERT(scope);
651 collectAssociatedElements(*scope, mutableThis->m_associatedElements); 651 collectAssociatedElements(*scope, mutableThis->m_associatedElements);
652 mutableThis->m_associatedElementsAreDirty = false; 652 mutableThis->m_associatedElementsAreDirty = false;
653 return m_associatedElements; 653 return m_associatedElements;
654 } 654 }
655 655
656 void HTMLFormElement::collectImageElements(Node& root, WillBeHeapVector<RawPtrWi llBeMember<HTMLImageElement> >& elements) 656 void HTMLFormElement::collectImageElements(Node& root, WillBeHeapVector<RawPtrWi llBeMember<HTMLImageElement> >& elements)
657 { 657 {
658 elements.clear(); 658 elements.clear();
659 for (HTMLImageElement* image = Traversal<HTMLImageElement>::firstWithin(root ); image; image = Traversal<HTMLImageElement>::next(*image)) { 659 for (HTMLImageElement& image : Traversal<HTMLImageElement>::fromNext(root)) {
660 if (image->formOwner() == this) 660 if (image.formOwner() == this)
661 elements.append(image); 661 elements.append(&image);
662 } 662 }
663 } 663 }
664 664
665 const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >& HTMLFormElement:: imageElements() 665 const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >& HTMLFormElement:: imageElements()
666 { 666 {
667 if (!m_imageElementsAreDirty) 667 if (!m_imageElementsAreDirty)
668 return m_imageElements; 668 return m_imageElements;
669 collectImageElements(m_hasElementsAssociatedByParser ? NodeTraversal::highes tAncestorOrSelf(*this) : *this, m_imageElements); 669 collectImageElements(m_hasElementsAssociatedByParser ? NodeTraversal::highes tAncestorOrSelf(*this) : *this, m_imageElements);
670 m_imageElementsAreDirty = false; 670 m_imageElementsAreDirty = false;
671 return m_imageElements; 671 return m_imageElements;
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 } 859 }
860 860
861 void HTMLFormElement::setDemoted(bool demoted) 861 void HTMLFormElement::setDemoted(bool demoted)
862 { 862 {
863 if (demoted) 863 if (demoted)
864 UseCounter::count(document(), UseCounter::DemotedFormElement); 864 UseCounter::count(document(), UseCounter::DemotedFormElement);
865 m_wasDemoted = demoted; 865 m_wasDemoted = demoted;
866 } 866 }
867 867
868 } // namespace 868 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698