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

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

Issue 2087953004: Switch v8 inspector to stl collections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 5 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/V8ProfilerAgentImpl.h" 5 #include "platform/v8_inspector/V8ProfilerAgentImpl.h"
6 6
7 #include "platform/v8_inspector/Atomics.h" 7 #include "platform/v8_inspector/Atomics.h"
8 #include "platform/v8_inspector/V8DebuggerImpl.h" 8 #include "platform/v8_inspector/V8DebuggerImpl.h"
9 #include "platform/v8_inspector/V8InspectorSessionImpl.h" 9 #include "platform/v8_inspector/V8InspectorSessionImpl.h"
10 #include "platform/v8_inspector/V8StackTraceImpl.h" 10 #include "platform/v8_inspector/V8StackTraceImpl.h"
11 #include "platform/v8_inspector/V8StringUtil.h" 11 #include "platform/v8_inspector/V8StringUtil.h"
12 #include <v8-profiler.h> 12 #include <v8-profiler.h>
13 13
14 #include <vector>
15
14 namespace blink { 16 namespace blink {
15 17
16 namespace ProfilerAgentState { 18 namespace ProfilerAgentState {
17 static const char samplingInterval[] = "samplingInterval"; 19 static const char samplingInterval[] = "samplingInterval";
18 static const char userInitiatedProfiling[] = "userInitiatedProfiling"; 20 static const char userInitiatedProfiling[] = "userInitiatedProfiling";
19 static const char profilerEnabled[] = "profilerEnabled"; 21 static const char profilerEnabled[] = "profilerEnabled";
20 } 22 }
21 23
22 namespace { 24 namespace {
23 25
24 std::unique_ptr<protocol::Array<protocol::Profiler::PositionTickInfo>> buildInsp ectorObjectForPositionTicks(const v8::CpuProfileNode* node) 26 std::unique_ptr<protocol::Array<protocol::Profiler::PositionTickInfo>> buildInsp ectorObjectForPositionTicks(const v8::CpuProfileNode* node)
25 { 27 {
26 std::unique_ptr<protocol::Array<protocol::Profiler::PositionTickInfo>> array = protocol::Array<protocol::Profiler::PositionTickInfo>::create(); 28 std::unique_ptr<protocol::Array<protocol::Profiler::PositionTickInfo>> array = protocol::Array<protocol::Profiler::PositionTickInfo>::create();
27 unsigned lineCount = node->GetHitLineCount(); 29 unsigned lineCount = node->GetHitLineCount();
28 if (!lineCount) 30 if (!lineCount)
29 return array; 31 return array;
30 32
31 protocol::Vector<v8::CpuProfileNode::LineTick> entries(lineCount); 33 std::vector<v8::CpuProfileNode::LineTick> entries(lineCount);
32 if (node->GetLineTicks(&entries[0], lineCount)) { 34 if (node->GetLineTicks(&entries[0], lineCount)) {
33 for (unsigned i = 0; i < lineCount; i++) { 35 for (unsigned i = 0; i < lineCount; i++) {
34 std::unique_ptr<protocol::Profiler::PositionTickInfo> line = protoco l::Profiler::PositionTickInfo::create() 36 std::unique_ptr<protocol::Profiler::PositionTickInfo> line = protoco l::Profiler::PositionTickInfo::create()
35 .setLine(entries[i].line) 37 .setLine(entries[i].line)
36 .setTicks(entries[i].hit_count).build(); 38 .setTicks(entries[i].hit_count).build();
37 array->addItem(std::move(line)); 39 array->addItem(std::move(line));
38 } 40 }
39 } 41 }
40 42
41 return array; 43 return array;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 135
134 V8ProfilerAgentImpl::~V8ProfilerAgentImpl() 136 V8ProfilerAgentImpl::~V8ProfilerAgentImpl()
135 { 137 {
136 } 138 }
137 139
138 void V8ProfilerAgentImpl::consoleProfile(const String16& title) 140 void V8ProfilerAgentImpl::consoleProfile(const String16& title)
139 { 141 {
140 if (!m_enabled) 142 if (!m_enabled)
141 return; 143 return;
142 String16 id = nextProfileId(); 144 String16 id = nextProfileId();
143 m_startedProfiles.append(ProfileDescriptor(id, title)); 145 m_startedProfiles.push_back(ProfileDescriptor(id, title));
144 startProfiling(id); 146 startProfiling(id);
145 m_frontend.consoleProfileStarted(id, currentDebugLocation(m_session->debugge r()), title); 147 m_frontend.consoleProfileStarted(id, currentDebugLocation(m_session->debugge r()), title);
146 } 148 }
147 149
148 void V8ProfilerAgentImpl::consoleProfileEnd(const String16& title) 150 void V8ProfilerAgentImpl::consoleProfileEnd(const String16& title)
149 { 151 {
150 if (!m_enabled) 152 if (!m_enabled)
151 return; 153 return;
152 String16 id; 154 String16 id;
153 String16 resolvedTitle; 155 String16 resolvedTitle;
154 // Take last started profile if no title was passed. 156 // Take last started profile if no title was passed.
155 if (title.isEmpty()) { 157 if (title.isEmpty()) {
156 if (m_startedProfiles.isEmpty()) 158 if (m_startedProfiles.empty())
157 return; 159 return;
158 id = m_startedProfiles.last().m_id; 160 id = m_startedProfiles.back().m_id;
159 resolvedTitle = m_startedProfiles.last().m_title; 161 resolvedTitle = m_startedProfiles.back().m_title;
160 m_startedProfiles.removeLast(); 162 m_startedProfiles.pop_back();
161 } else { 163 } else {
162 for (size_t i = 0; i < m_startedProfiles.size(); i++) { 164 for (size_t i = 0; i < m_startedProfiles.size(); i++) {
163 if (m_startedProfiles[i].m_title == title) { 165 if (m_startedProfiles[i].m_title == title) {
164 resolvedTitle = title; 166 resolvedTitle = title;
165 id = m_startedProfiles[i].m_id; 167 id = m_startedProfiles[i].m_id;
166 m_startedProfiles.remove(i); 168 m_startedProfiles.erase(m_startedProfiles.begin() + i);
167 break; 169 break;
168 } 170 }
169 } 171 }
170 if (id.isEmpty()) 172 if (id.isEmpty())
171 return; 173 return;
172 } 174 }
173 std::unique_ptr<protocol::Profiler::CPUProfile> profile = stopProfiling(id, true); 175 std::unique_ptr<protocol::Profiler::CPUProfile> profile = stopProfiling(id, true);
174 if (!profile) 176 if (!profile)
175 return; 177 return;
176 std::unique_ptr<protocol::Debugger::Location> location = currentDebugLocatio n(m_session->debugger()); 178 std::unique_ptr<protocol::Debugger::Location> location = currentDebugLocatio n(m_session->debugger());
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 return nullptr; 281 return nullptr;
280 std::unique_ptr<protocol::Profiler::CPUProfile> result; 282 std::unique_ptr<protocol::Profiler::CPUProfile> result;
281 if (serialize) 283 if (serialize)
282 result = createCPUProfile(m_isolate, profile); 284 result = createCPUProfile(m_isolate, profile);
283 profile->Delete(); 285 profile->Delete();
284 return result; 286 return result;
285 } 287 }
286 288
287 bool V8ProfilerAgentImpl::isRecording() const 289 bool V8ProfilerAgentImpl::isRecording() const
288 { 290 {
289 return m_recordingCPUProfile || !m_startedProfiles.isEmpty(); 291 return m_recordingCPUProfile || !m_startedProfiles.empty();
290 } 292 }
291 293
292 } // namespace blink 294 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698