OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/dom/WeakNodeMap.h" | 6 #include "core/dom/WeakNodeMap.h" |
7 | 7 |
8 #include "core/dom/Node.h" | 8 #include "core/dom/Node.h" |
9 | 9 |
10 namespace blink { | 10 namespace blink { |
11 | 11 |
12 #if !ENABLE(OILPAN) | 12 #if !ENABLE(OILPAN) |
13 class NodeToWeakNodeMaps { | 13 class NodeToWeakNodeMaps { |
14 public: | 14 public: |
15 bool addedToMap(Node*, WeakNodeMap*); | 15 bool addedToMap(Node*, WeakNodeMap*); |
16 bool removedFromMap(Node*, WeakNodeMap*); | 16 bool removedFromMap(Node*, WeakNodeMap*); |
17 void nodeDestroyed(Node*); | 17 void nodeDestroyed(Node*); |
18 | 18 |
19 static NodeToWeakNodeMaps& instance() | 19 static NodeToWeakNodeMaps& instance() |
20 { | 20 { |
21 DEFINE_STATIC_LOCAL(NodeToWeakNodeMaps, self, ()); | 21 DEFINE_STATIC_LOCAL(NodeToWeakNodeMaps, self, ()); |
22 return self; | 22 return self; |
23 } | 23 } |
24 | 24 |
25 private: | 25 private: |
26 typedef Vector<WeakNodeMap*, 1> MapList; | 26 typedef Vector<WeakNodeMap*, 1> MapList; |
27 typedef HashMap<Node*, OwnPtr<MapList> > NodeToMapList; | 27 typedef HashMap<Node*, OwnPtr<MapList>> NodeToMapList; |
28 NodeToMapList m_nodeToMapList; | 28 NodeToMapList m_nodeToMapList; |
29 }; | 29 }; |
30 | 30 |
31 bool NodeToWeakNodeMaps::addedToMap(Node* node, WeakNodeMap* map) | 31 bool NodeToWeakNodeMaps::addedToMap(Node* node, WeakNodeMap* map) |
32 { | 32 { |
33 NodeToMapList::AddResult result = m_nodeToMapList.add(node, nullptr); | 33 NodeToMapList::AddResult result = m_nodeToMapList.add(node, nullptr); |
34 if (result.isNewEntry) | 34 if (result.isNewEntry) |
35 result.storedValue->value = adoptPtr(new MapList()); | 35 result.storedValue->value = adoptPtr(new MapList()); |
36 result.storedValue->value->append(map); | 36 result.storedValue->value->append(map); |
37 return result.isNewEntry; | 37 return result.isNewEntry; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 m_valueToNode.remove(value); | 97 m_valueToNode.remove(value); |
98 } | 98 } |
99 | 99 |
100 void WeakNodeMap::notifyNodeDestroyed(Node* node) | 100 void WeakNodeMap::notifyNodeDestroyed(Node* node) |
101 { | 101 { |
102 NodeToWeakNodeMaps::instance().nodeDestroyed(node); | 102 NodeToWeakNodeMaps::instance().nodeDestroyed(node); |
103 } | 103 } |
104 #endif | 104 #endif |
105 | 105 |
106 } | 106 } |
OLD | NEW |