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

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/InjectedScriptNative.cpp

Issue 2087953004: Switch v8 inspector to stl collections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually remove a value from the list Created 4 years, 6 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "platform/v8_inspector/InjectedScriptNative.h" 5 #include "platform/v8_inspector/InjectedScriptNative.h"
6 6
7 #include "platform/inspector_protocol/Values.h" 7 #include "platform/inspector_protocol/Values.h"
8 8
9 namespace blink { 9 namespace blink {
10 10
(...skipping 25 matching lines...) Expand all
36 DCHECK(value->IsExternal()); 36 DCHECK(value->IsExternal());
37 v8::Local<v8::External> external = value.As<v8::External>(); 37 v8::Local<v8::External> external = value.As<v8::External>();
38 return static_cast<InjectedScriptNative*>(external->Value()); 38 return static_cast<InjectedScriptNative*>(external->Value());
39 } 39 }
40 40
41 int InjectedScriptNative::bind(v8::Local<v8::Value> value, const String16& group Name) 41 int InjectedScriptNative::bind(v8::Local<v8::Value> value, const String16& group Name)
42 { 42 {
43 if (m_lastBoundObjectId <= 0) 43 if (m_lastBoundObjectId <= 0)
44 m_lastBoundObjectId = 1; 44 m_lastBoundObjectId = 1;
45 int id = m_lastBoundObjectId++; 45 int id = m_lastBoundObjectId++;
46 m_idToWrappedObject.set(id, wrapUnique(new v8::Global<v8::Value>(m_isolate, value))); 46 m_idToWrappedObject[id] = wrapUnique(new v8::Global<v8::Value>(m_isolate, va lue));
47 addObjectToGroup(id, groupName); 47 addObjectToGroup(id, groupName);
48 return id; 48 return id;
49 } 49 }
50 50
51 void InjectedScriptNative::unbind(int id) 51 void InjectedScriptNative::unbind(int id)
52 { 52 {
53 m_idToWrappedObject.remove(id); 53 m_idToWrappedObject.erase(id);
54 m_idToObjectGroupName.remove(id); 54 m_idToObjectGroupName.erase(id);
55 } 55 }
56 56
57 v8::Local<v8::Value> InjectedScriptNative::objectForId(int id) 57 v8::Local<v8::Value> InjectedScriptNative::objectForId(int id)
58 { 58 {
59 return m_idToWrappedObject.contains(id) ? m_idToWrappedObject.get(id)->Get(m _isolate) : v8::Local<v8::Value>(); 59 auto iter = m_idToWrappedObject.find(id);
60 return iter != m_idToWrappedObject.end() ? iter->second->Get(m_isolate) : v8 ::Local<v8::Value>();
60 } 61 }
61 62
62 void InjectedScriptNative::addObjectToGroup(int objectId, const String16& groupN ame) 63 void InjectedScriptNative::addObjectToGroup(int objectId, const String16& groupN ame)
63 { 64 {
64 if (groupName.isEmpty()) 65 if (groupName.isEmpty())
65 return; 66 return;
66 if (objectId <= 0) 67 if (objectId <= 0)
67 return; 68 return;
68 m_idToObjectGroupName.set(objectId, groupName); 69 m_idToObjectGroupName[objectId] = groupName;
69 auto it = m_nameToObjectGroup.find(groupName); 70 m_nameToObjectGroup[groupName].push_back(objectId); // Creates an empty vect or if key is not there
70 if (it == m_nameToObjectGroup.end()) {
71 m_nameToObjectGroup.set(groupName, protocol::Vector<int>());
72 it = m_nameToObjectGroup.find(groupName);
73 }
74 it->second->append(objectId);
75 } 71 }
76 72
77 void InjectedScriptNative::releaseObjectGroup(const String16& groupName) 73 void InjectedScriptNative::releaseObjectGroup(const String16& groupName)
78 { 74 {
79 if (groupName.isEmpty()) 75 if (groupName.isEmpty())
80 return; 76 return;
81 NameToObjectGroup::iterator groupIt = m_nameToObjectGroup.find(groupName); 77 NameToObjectGroup::iterator groupIt = m_nameToObjectGroup.find(groupName);
82 if (groupIt == m_nameToObjectGroup.end()) 78 if (groupIt == m_nameToObjectGroup.end())
83 return; 79 return;
84 for (int id : *groupIt->second) 80 for (int id : groupIt->second)
85 unbind(id); 81 unbind(id);
86 m_nameToObjectGroup.remove(groupName); 82 m_nameToObjectGroup.erase(groupName);
dgozman 2016/06/24 17:01:13 nit: erase(groupIt) would be even better
eostroukhov-old 2016/06/24 22:24:25 Done.
87 } 83 }
88 84
89 String16 InjectedScriptNative::groupName(int objectId) const 85 String16 InjectedScriptNative::groupName(int objectId) const
90 { 86 {
91 if (objectId <= 0) 87 if (objectId <= 0)
92 return String16(); 88 return String16();
93 return m_idToObjectGroupName.get(objectId); 89 IdToObjectGroupName::const_iterator iterator = m_idToObjectGroupName.find(ob jectId);
90 return iterator != m_idToObjectGroupName.end() ? iterator->second : String16 ();
94 } 91 }
95 92
96 } // namespace blink 93 } // namespace blink
97 94
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698