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

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

Issue 2024993003: Add CrossThreadCopier and isolatedCopy() to SourceLocation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/V8StackTraceImpl.h" 5 #include "platform/v8_inspector/V8StackTraceImpl.h"
6 6
7 #include "platform/inspector_protocol/String16.h" 7 #include "platform/inspector_protocol/String16.h"
8 #include "platform/v8_inspector/V8DebuggerAgentImpl.h" 8 #include "platform/v8_inspector/V8DebuggerAgentImpl.h"
9 #include "platform/v8_inspector/V8DebuggerImpl.h" 9 #include "platform/v8_inspector/V8DebuggerImpl.h"
10 #include "platform/v8_inspector/V8StringUtil.h" 10 #include "platform/v8_inspector/V8StringUtil.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 { 78 {
79 return protocol::Runtime::CallFrame::create() 79 return protocol::Runtime::CallFrame::create()
80 .setFunctionName(m_functionName) 80 .setFunctionName(m_functionName)
81 .setScriptId(m_scriptId) 81 .setScriptId(m_scriptId)
82 .setUrl(m_scriptName) 82 .setUrl(m_scriptName)
83 .setLineNumber(m_lineNumber) 83 .setLineNumber(m_lineNumber)
84 .setColumnNumber(m_columnNumber) 84 .setColumnNumber(m_columnNumber)
85 .build(); 85 .build();
86 } 86 }
87 87
88 V8StackTraceImpl::Frame V8StackTraceImpl::Frame::isolatedCopy() const
89 {
90 return Frame(m_functionName.isolatedCopy(), m_scriptId.isolatedCopy(), m_scr iptName.isolatedCopy(), m_lineNumber, m_columnNumber);
pfeldman 2016/06/08 02:22:18 We should not pass this struct between threads at
91 }
92
88 std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::create(V8DebuggerAgentImpl* agent, v8::Local<v8::StackTrace> stackTrace, size_t maxStackSize, const String16 & description) 93 std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::create(V8DebuggerAgentImpl* agent, v8::Local<v8::StackTrace> stackTrace, size_t maxStackSize, const String16 & description)
89 { 94 {
90 v8::Isolate* isolate = v8::Isolate::GetCurrent(); 95 v8::Isolate* isolate = v8::Isolate::GetCurrent();
91 v8::HandleScope scope(isolate); 96 v8::HandleScope scope(isolate);
92 protocol::Vector<V8StackTraceImpl::Frame> frames; 97 protocol::Vector<V8StackTraceImpl::Frame> frames;
93 if (!stackTrace.IsEmpty()) 98 if (!stackTrace.IsEmpty())
94 toFramesVector(stackTrace, frames, maxStackSize, isolate); 99 toFramesVector(stackTrace, frames, maxStackSize, isolate);
95 100
96 int maxAsyncCallChainDepth = 1; 101 int maxAsyncCallChainDepth = 1;
97 V8StackTraceImpl* asyncCallChain = nullptr; 102 V8StackTraceImpl* asyncCallChain = nullptr;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 { 144 {
140 return cloneImpl(); 145 return cloneImpl();
141 } 146 }
142 147
143 std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::cloneImpl() 148 std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::cloneImpl()
144 { 149 {
145 protocol::Vector<Frame> framesCopy(m_frames); 150 protocol::Vector<Frame> framesCopy(m_frames);
146 return wrapUnique(new V8StackTraceImpl(m_description, framesCopy, m_parent ? m_parent->cloneImpl() : nullptr)); 151 return wrapUnique(new V8StackTraceImpl(m_description, framesCopy, m_parent ? m_parent->cloneImpl() : nullptr));
147 } 152 }
148 153
154 std::unique_ptr<V8StackTrace> V8StackTraceImpl::isolatedCopy()
155 {
156 return isolatedCopyImpl();
157 }
158
159 std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::isolatedCopyImpl()
160 {
161 protocol::Vector<Frame> frames;
162 for (size_t i = 0; i < m_frames.size(); i++)
163 frames.append(m_frames.at(i).isolatedCopy());
164 return wrapUnique(new V8StackTraceImpl(m_description.isolatedCopy(), frames, m_parent ? m_parent->isolatedCopyImpl() : nullptr));
165 }
166
149 V8StackTraceImpl::V8StackTraceImpl(const String16& description, protocol::Vector <Frame>& frames, std::unique_ptr<V8StackTraceImpl> parent) 167 V8StackTraceImpl::V8StackTraceImpl(const String16& description, protocol::Vector <Frame>& frames, std::unique_ptr<V8StackTraceImpl> parent)
150 : m_description(description) 168 : m_description(description)
151 , m_parent(std::move(parent)) 169 , m_parent(std::move(parent))
152 { 170 {
153 m_frames.swap(frames); 171 m_frames.swap(frames);
154 } 172 }
155 173
156 V8StackTraceImpl::~V8StackTraceImpl() 174 V8StackTraceImpl::~V8StackTraceImpl()
157 { 175 {
158 } 176 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 stackTrace.append(':'); 241 stackTrace.append(':');
224 stackTrace.appendNumber(frame.lineNumber()); 242 stackTrace.appendNumber(frame.lineNumber());
225 stackTrace.append(':'); 243 stackTrace.append(':');
226 stackTrace.appendNumber(frame.columnNumber()); 244 stackTrace.appendNumber(frame.columnNumber());
227 stackTrace.append(')'); 245 stackTrace.append(')');
228 } 246 }
229 return stackTrace.toString(); 247 return stackTrace.toString();
230 } 248 }
231 249
232 } // namespace blink 250 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698