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, 2004, 2005, 2006, 2007, 2010, 2011, 2012 Apple Inc. All r
ights reserved. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 Apple Inc. All r
ights 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 22 matching lines...) Expand all Loading... |
33 | 33 |
34 namespace WebCore { | 34 namespace WebCore { |
35 | 35 |
36 using namespace HTMLNames; | 36 using namespace HTMLNames; |
37 | 37 |
38 // Since the collections are to be "live", we have to do the | 38 // Since the collections are to be "live", we have to do the |
39 // calculation every time if anything has changed. | 39 // calculation every time if anything has changed. |
40 | 40 |
41 HTMLFormControlsCollection::HTMLFormControlsCollection(ContainerNode& ownerNode) | 41 HTMLFormControlsCollection::HTMLFormControlsCollection(ContainerNode& ownerNode) |
42 : HTMLCollection(ownerNode, FormControls, OverridesItemAfter) | 42 : HTMLCollection(ownerNode, FormControls, OverridesItemAfter) |
43 , m_cachedElement(0) | 43 , m_cachedElement(nullptr) |
44 , m_cachedElementOffsetInArray(0) | 44 , m_cachedElementOffsetInArray(0) |
45 { | 45 { |
46 ASSERT(isHTMLFormElement(ownerNode) || isHTMLFieldSetElement(ownerNode)); | 46 ASSERT(isHTMLFormElement(ownerNode) || isHTMLFieldSetElement(ownerNode)); |
47 ScriptWrappable::init(this); | 47 ScriptWrappable::init(this); |
48 } | 48 } |
49 | 49 |
50 PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFormControlsCollection::c
reate(ContainerNode& ownerNode, CollectionType) | 50 PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFormControlsCollection::c
reate(ContainerNode& ownerNode, CollectionType) |
51 { | 51 { |
52 return adoptRefWillBeNoop(new HTMLFormControlsCollection(ownerNode)); | 52 return adoptRefWillBeNoop(new HTMLFormControlsCollection(ownerNode)); |
53 } | 53 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 m_cachedElementOffsetInArray = i; | 98 m_cachedElementOffsetInArray = i; |
99 return m_cachedElement; | 99 return m_cachedElement; |
100 } | 100 } |
101 } | 101 } |
102 return 0; | 102 return 0; |
103 } | 103 } |
104 | 104 |
105 void HTMLFormControlsCollection::invalidateCache(Document* oldDocument) const | 105 void HTMLFormControlsCollection::invalidateCache(Document* oldDocument) const |
106 { | 106 { |
107 HTMLCollection::invalidateCache(oldDocument); | 107 HTMLCollection::invalidateCache(oldDocument); |
108 m_cachedElement = 0; | 108 m_cachedElement = nullptr; |
109 m_cachedElementOffsetInArray = 0; | 109 m_cachedElementOffsetInArray = 0; |
110 } | 110 } |
111 | 111 |
112 static HTMLElement* firstNamedItem(const FormAssociatedElement::List& elementsAr
ray, | 112 static HTMLElement* firstNamedItem(const FormAssociatedElement::List& elementsAr
ray, |
113 const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >* imageElements
Array, const QualifiedName& attrName, const String& name) | 113 const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >* imageElements
Array, const QualifiedName& attrName, const String& name) |
114 { | 114 { |
115 ASSERT(attrName == idAttr || attrName == nameAttr); | 115 ASSERT(attrName == idAttr || attrName == nameAttr); |
116 | 116 |
117 for (unsigned i = 0; i < elementsArray.size(); ++i) { | 117 for (unsigned i = 0; i < elementsArray.size(); ++i) { |
118 HTMLElement* element = toHTMLElement(elementsArray[i]); | 118 HTMLElement* element = toHTMLElement(elementsArray[i]); |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 } | 230 } |
231 const AtomicString& nameAttribute = element->getNameAttribute(); | 231 const AtomicString& nameAttribute = element->getNameAttribute(); |
232 if (!nameAttribute.isEmpty()) { | 232 if (!nameAttribute.isEmpty()) { |
233 HashSet<AtomicString>::AddResult addResult = existingNames.add(nameA
ttribute); | 233 HashSet<AtomicString>::AddResult addResult = existingNames.add(nameA
ttribute); |
234 if (addResult.isNewEntry) | 234 if (addResult.isNewEntry) |
235 names.append(nameAttribute); | 235 names.append(nameAttribute); |
236 } | 236 } |
237 } | 237 } |
238 } | 238 } |
239 | 239 |
| 240 void HTMLFormControlsCollection::trace(Visitor* visitor) |
| 241 { |
| 242 visitor->trace(m_cachedElement); |
| 243 HTMLCollection::trace(visitor); |
240 } | 244 } |
| 245 |
| 246 } |
OLD | NEW |