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

Side by Side Diff: third_party/WebKit/Source/core/dom/DocumentOrderedMap.cpp

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 23 matching lines...) Expand all
34 #include "core/dom/Element.h" 34 #include "core/dom/Element.h"
35 #include "core/dom/ElementTraversal.h" 35 #include "core/dom/ElementTraversal.h"
36 #include "core/dom/TreeScope.h" 36 #include "core/dom/TreeScope.h"
37 #include "core/html/HTMLMapElement.h" 37 #include "core/html/HTMLMapElement.h"
38 38
39 namespace blink { 39 namespace blink {
40 40
41 using namespace HTMLNames; 41 using namespace HTMLNames;
42 42
43 43
44 PassOwnPtrWillBeRawPtr<DocumentOrderedMap> DocumentOrderedMap::create() 44 RawPtr<DocumentOrderedMap> DocumentOrderedMap::create()
45 { 45 {
46 return adoptPtrWillBeNoop(new DocumentOrderedMap); 46 return (new DocumentOrderedMap);
47 } 47 }
48 48
49 DocumentOrderedMap::DocumentOrderedMap() 49 DocumentOrderedMap::DocumentOrderedMap()
50 { 50 {
51 } 51 }
52 52
53 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DocumentOrderedMap);
54
55 #if ENABLE(ASSERT) 53 #if ENABLE(ASSERT)
56 static int s_removeScopeLevel = 0; 54 static int s_removeScopeLevel = 0;
57 55
58 DocumentOrderedMap::RemoveScope::RemoveScope() 56 DocumentOrderedMap::RemoveScope::RemoveScope()
59 { 57 {
60 s_removeScopeLevel++; 58 s_removeScopeLevel++;
61 } 59 }
62 60
63 DocumentOrderedMap::RemoveScope::~RemoveScope() 61 DocumentOrderedMap::RemoveScope::~RemoveScope()
64 { 62 {
(...skipping 20 matching lines...) Expand all
85 inline bool keyMatchesLabelForAttribute(const AtomicString& key, const Element& element) 83 inline bool keyMatchesLabelForAttribute(const AtomicString& key, const Element& element)
86 { 84 {
87 return isHTMLLabelElement(element) && element.getAttribute(forAttr) == key; 85 return isHTMLLabelElement(element) && element.getAttribute(forAttr) == key;
88 } 86 }
89 87
90 void DocumentOrderedMap::add(const AtomicString& key, Element* element) 88 void DocumentOrderedMap::add(const AtomicString& key, Element* element)
91 { 89 {
92 ASSERT(key); 90 ASSERT(key);
93 ASSERT(element); 91 ASSERT(element);
94 92
95 Map::AddResult addResult = m_map.add(key, adoptPtrWillBeNoop(new MapEntry(el ement))); 93 Map::AddResult addResult = m_map.add(key, (new MapEntry(element)));
96 if (addResult.isNewEntry) 94 if (addResult.isNewEntry)
97 return; 95 return;
98 96
99 OwnPtrWillBeMember<MapEntry>& entry = addResult.storedValue->value; 97 Member<MapEntry>& entry = addResult.storedValue->value;
100 ASSERT(entry->count); 98 ASSERT(entry->count);
101 entry->element = nullptr; 99 entry->element = nullptr;
102 entry->count++; 100 entry->count++;
103 entry->orderedList.clear(); 101 entry->orderedList.clear();
104 } 102 }
105 103
106 void DocumentOrderedMap::remove(const AtomicString& key, Element* element) 104 void DocumentOrderedMap::remove(const AtomicString& key, Element* element)
107 { 105 {
108 ASSERT(key); 106 ASSERT(key);
109 ASSERT(element); 107 ASSERT(element);
110 108
111 Map::iterator it = m_map.find(key); 109 Map::iterator it = m_map.find(key);
112 if (it == m_map.end()) 110 if (it == m_map.end())
113 return; 111 return;
114 112
115 OwnPtrWillBeMember<MapEntry>& entry = it->value; 113 Member<MapEntry>& entry = it->value;
116 ASSERT(entry->count); 114 ASSERT(entry->count);
117 if (entry->count == 1) { 115 if (entry->count == 1) {
118 ASSERT(!entry->element || entry->element == element); 116 ASSERT(!entry->element || entry->element == element);
119 m_map.remove(it); 117 m_map.remove(it);
120 } else { 118 } else {
121 if (entry->element == element) { 119 if (entry->element == element) {
122 ASSERT(entry->orderedList.isEmpty() || entry->orderedList.first() == element); 120 ASSERT(entry->orderedList.isEmpty() || entry->orderedList.first() == element);
123 entry->element = entry->orderedList.size() > 1 ? entry->orderedList[ 1] : nullptr; 121 entry->element = entry->orderedList.size() > 1 ? entry->orderedList[ 1] : nullptr;
124 } 122 }
125 entry->count--; 123 entry->count--;
(...skipping 29 matching lines...) Expand all
155 // removals, allow failure iff we're in the scope of node removals. 153 // removals, allow failure iff we're in the scope of node removals.
156 ASSERT(s_removeScopeLevel); 154 ASSERT(s_removeScopeLevel);
157 return 0; 155 return 0;
158 } 156 }
159 157
160 Element* DocumentOrderedMap::getElementById(const AtomicString& key, const TreeS cope* scope) const 158 Element* DocumentOrderedMap::getElementById(const AtomicString& key, const TreeS cope* scope) const
161 { 159 {
162 return get<keyMatchesId>(key, scope); 160 return get<keyMatchesId>(key, scope);
163 } 161 }
164 162
165 const WillBeHeapVector<RawPtrWillBeMember<Element>>& DocumentOrderedMap::getAllE lementsById(const AtomicString& key, const TreeScope* scope) const 163 const HeapVector<Member<Element>>& DocumentOrderedMap::getAllElementsById(const AtomicString& key, const TreeScope* scope) const
166 { 164 {
167 ASSERT(key); 165 ASSERT(key);
168 ASSERT(scope); 166 ASSERT(scope);
169 DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapVector<RawPtrWillBeMemb er<Element>>>, emptyVector, (adoptPtrWillBeNoop(new WillBeHeapVector<RawPtrWillB eMember<Element>>()))); 167 DEFINE_STATIC_LOCAL(Persistent<HeapVector<Member<Element>>>, emptyVector, (( new HeapVector<Member<Element>>())));
170 168
171 Map::iterator it = m_map.find(key); 169 Map::iterator it = m_map.find(key);
172 if (it == m_map.end()) 170 if (it == m_map.end())
173 return *emptyVector; 171 return *emptyVector;
174 172
175 OwnPtrWillBeMember<MapEntry>& entry = it->value; 173 Member<MapEntry>& entry = it->value;
176 ASSERT(entry->count); 174 ASSERT(entry->count);
177 175
178 if (entry->orderedList.isEmpty()) { 176 if (entry->orderedList.isEmpty()) {
179 entry->orderedList.reserveCapacity(entry->count); 177 entry->orderedList.reserveCapacity(entry->count);
180 for (Element* element = entry->element ? entry->element.get() : ElementT raversal::firstWithin(scope->rootNode()); entry->orderedList.size() < entry->cou nt; element = ElementTraversal::next(*element)) { 178 for (Element* element = entry->element ? entry->element.get() : ElementT raversal::firstWithin(scope->rootNode()); entry->orderedList.size() < entry->cou nt; element = ElementTraversal::next(*element)) {
181 ASSERT(element); 179 ASSERT(element);
182 if (!keyMatchesId(key, *element)) 180 if (!keyMatchesId(key, *element))
183 continue; 181 continue;
184 entry->orderedList.uncheckedAppend(element); 182 entry->orderedList.uncheckedAppend(element);
185 } 183 }
(...skipping 28 matching lines...) Expand all
214 212
215 DEFINE_TRACE(DocumentOrderedMap::MapEntry) 213 DEFINE_TRACE(DocumentOrderedMap::MapEntry)
216 { 214 {
217 visitor->trace(element); 215 visitor->trace(element);
218 #if ENABLE(OILPAN) 216 #if ENABLE(OILPAN)
219 visitor->trace(orderedList); 217 visitor->trace(orderedList);
220 #endif 218 #endif
221 } 219 }
222 220
223 } // namespace blink 221 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698