Index: third_party/WebKit/Source/platform/v8_inspector/V8StackTraceImpl.cpp |
diff --git a/third_party/WebKit/Source/platform/v8_inspector/V8StackTraceImpl.cpp b/third_party/WebKit/Source/platform/v8_inspector/V8StackTraceImpl.cpp |
index f821fa61fc81fddb8ed6c4694a47c88fb889217d..5afab72775e768a7c6ae8f0f91fdf5b464364650 100644 |
--- a/third_party/WebKit/Source/platform/v8_inspector/V8StackTraceImpl.cpp |
+++ b/third_party/WebKit/Source/platform/v8_inspector/V8StackTraceImpl.cpp |
@@ -85,6 +85,11 @@ std::unique_ptr<protocol::Runtime::CallFrame> V8StackTraceImpl::Frame::buildInsp |
.build(); |
} |
+V8StackTraceImpl::Frame V8StackTraceImpl::Frame::isolatedCopy() const |
+{ |
+ return Frame(m_functionName.isolatedCopy(), m_scriptId.isolatedCopy(), m_scriptName.isolatedCopy(), m_lineNumber, m_columnNumber); |
pfeldman
2016/06/08 02:22:18
We should not pass this struct between threads at
|
+} |
+ |
std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::create(V8DebuggerAgentImpl* agent, v8::Local<v8::StackTrace> stackTrace, size_t maxStackSize, const String16& description) |
{ |
v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
@@ -146,6 +151,19 @@ std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::cloneImpl() |
return wrapUnique(new V8StackTraceImpl(m_description, framesCopy, m_parent ? m_parent->cloneImpl() : nullptr)); |
} |
+std::unique_ptr<V8StackTrace> V8StackTraceImpl::isolatedCopy() |
+{ |
+ return isolatedCopyImpl(); |
+} |
+ |
+std::unique_ptr<V8StackTraceImpl> V8StackTraceImpl::isolatedCopyImpl() |
+{ |
+ protocol::Vector<Frame> frames; |
+ for (size_t i = 0; i < m_frames.size(); i++) |
+ frames.append(m_frames.at(i).isolatedCopy()); |
+ return wrapUnique(new V8StackTraceImpl(m_description.isolatedCopy(), frames, m_parent ? m_parent->isolatedCopyImpl() : nullptr)); |
+} |
+ |
V8StackTraceImpl::V8StackTraceImpl(const String16& description, protocol::Vector<Frame>& frames, std::unique_ptr<V8StackTraceImpl> parent) |
: m_description(description) |
, m_parent(std::move(parent)) |