| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 return; | 105 return; |
| 106 | 106 |
| 107 Member<MapEntry>& entry = it->value; | 107 Member<MapEntry>& entry = it->value; |
| 108 DCHECK(entry->count); | 108 DCHECK(entry->count); |
| 109 if (entry->count == 1) { | 109 if (entry->count == 1) { |
| 110 DCHECK(!entry->element || entry->element == element); | 110 DCHECK(!entry->element || entry->element == element); |
| 111 m_map.remove(it); | 111 m_map.remove(it); |
| 112 } else { | 112 } else { |
| 113 if (entry->element == element) { | 113 if (entry->element == element) { |
| 114 DCHECK(entry->orderedList.isEmpty() || | 114 DCHECK(entry->orderedList.isEmpty() || |
| 115 entry->orderedList.first() == element); | 115 entry->orderedList.front() == element); |
| 116 entry->element = | 116 entry->element = |
| 117 entry->orderedList.size() > 1 ? entry->orderedList[1] : nullptr; | 117 entry->orderedList.size() > 1 ? entry->orderedList[1] : nullptr; |
| 118 } | 118 } |
| 119 entry->count--; | 119 entry->count--; |
| 120 entry->orderedList.clear(); | 120 entry->orderedList.clear(); |
| 121 } | 121 } |
| 122 } | 122 } |
| 123 | 123 |
| 124 template <bool keyMatches(const AtomicString&, const Element&)> | 124 template <bool keyMatches(const AtomicString&, const Element&)> |
| 125 inline Element* DocumentOrderedMap::get(const AtomicString& key, | 125 inline Element* DocumentOrderedMap::get(const AtomicString& key, |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 entry->element ? entry->element.get() | 179 entry->element ? entry->element.get() |
| 180 : ElementTraversal::firstWithin(scope->rootNode()); | 180 : ElementTraversal::firstWithin(scope->rootNode()); |
| 181 entry->orderedList.size() < entry->count; | 181 entry->orderedList.size() < entry->count; |
| 182 element = ElementTraversal::next(*element)) { | 182 element = ElementTraversal::next(*element)) { |
| 183 DCHECK(element); | 183 DCHECK(element); |
| 184 if (!keyMatchesId(key, *element)) | 184 if (!keyMatchesId(key, *element)) |
| 185 continue; | 185 continue; |
| 186 entry->orderedList.uncheckedAppend(element); | 186 entry->orderedList.uncheckedAppend(element); |
| 187 } | 187 } |
| 188 if (!entry->element) | 188 if (!entry->element) |
| 189 entry->element = entry->orderedList.first(); | 189 entry->element = entry->orderedList.front(); |
| 190 } | 190 } |
| 191 | 191 |
| 192 return entry->orderedList; | 192 return entry->orderedList; |
| 193 } | 193 } |
| 194 | 194 |
| 195 Element* DocumentOrderedMap::getElementByMapName(const AtomicString& key, | 195 Element* DocumentOrderedMap::getElementByMapName(const AtomicString& key, |
| 196 const TreeScope* scope) const { | 196 const TreeScope* scope) const { |
| 197 return get<keyMatchesMapName>(key, scope); | 197 return get<keyMatchesMapName>(key, scope); |
| 198 } | 198 } |
| 199 | 199 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 217 DEFINE_TRACE(DocumentOrderedMap) { | 217 DEFINE_TRACE(DocumentOrderedMap) { |
| 218 visitor->trace(m_map); | 218 visitor->trace(m_map); |
| 219 } | 219 } |
| 220 | 220 |
| 221 DEFINE_TRACE(DocumentOrderedMap::MapEntry) { | 221 DEFINE_TRACE(DocumentOrderedMap::MapEntry) { |
| 222 visitor->trace(element); | 222 visitor->trace(element); |
| 223 visitor->trace(orderedList); | 223 visitor->trace(orderedList); |
| 224 } | 224 } |
| 225 | 225 |
| 226 } // namespace blink | 226 } // namespace blink |
| OLD | NEW |