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

Unified Diff: src/inspector/v8-debugger.h

Issue 2825713002: Revert of [inspector] avoid cloning of async call chains (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/inspector/v8-console.cc ('k') | src/inspector/v8-debugger.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/inspector/v8-debugger.h
diff --git a/src/inspector/v8-debugger.h b/src/inspector/v8-debugger.h
index 784f4ba4fabce97592673db8c725993369383f72..1e2746040f4f835ea13aba6b759df701de02a051 100644
--- a/src/inspector/v8-debugger.h
+++ b/src/inspector/v8-debugger.h
@@ -5,7 +5,6 @@
#ifndef V8_INSPECTOR_V8DEBUGGER_H_
#define V8_INSPECTOR_V8DEBUGGER_H_
-#include <list>
#include <vector>
#include "src/base/macros.h"
@@ -21,9 +20,7 @@
namespace v8_inspector {
-class AsyncStackTrace;
struct ScriptBreakpoint;
-class V8Debugger;
class V8DebuggerAgentImpl;
class V8InspectorImpl;
class V8StackTraceImpl;
@@ -38,7 +35,6 @@
~V8Debugger();
bool enabled() const;
- v8::Isolate* isolate() const { return m_isolate; }
String16 setBreakpoint(const ScriptBreakpoint&, int* actualLineNumber,
int* actualColumnNumber);
@@ -80,11 +76,9 @@
v8::Local<v8::Context> pausedContext() { return m_pausedContext; }
int maxAsyncCallChainDepth() { return m_maxAsyncCallStackDepth; }
+ V8StackTraceImpl* currentAsyncCallChain();
+ V8StackTraceImpl* currentAsyncTaskCreationStack();
void setAsyncCallStackDepth(V8DebuggerAgentImpl*, int);
-
- std::shared_ptr<AsyncStackTrace> currentAsyncParent();
- std::shared_ptr<AsyncStackTrace> currentAsyncCreation();
-
std::unique_ptr<V8StackTraceImpl> createStackTrace(v8::Local<v8::StackTrace>);
std::unique_ptr<V8StackTraceImpl> captureStackTrace(bool fullStack);
@@ -105,7 +99,7 @@
WasmTranslation* wasmTranslation() { return &m_wasmTranslation; }
- void setMaxAsyncTaskStacksForTest(int limit);
+ void setMaxAsyncTaskStacksForTest(int limit) { m_maxAsyncCallStacks = limit; }
private:
void compileDebuggerScript();
@@ -149,6 +143,8 @@
void asyncTaskStartedForStepping(void* task);
void asyncTaskFinishedForStepping(void* task);
void asyncTaskCanceledForStepping(void* task);
+
+ void registerAsyncTaskIfNeeded(void* task);
// v8::debug::DebugEventListener implementation.
void PromiseEventOccurred(v8::debug::PromiseDebugActionType type, int id,
@@ -182,24 +178,18 @@
int m_targetContextGroupId = 0;
using AsyncTaskToStackTrace =
- protocol::HashMap<void*, std::weak_ptr<AsyncStackTrace>>;
+ protocol::HashMap<void*, std::unique_ptr<V8StackTraceImpl>>;
AsyncTaskToStackTrace m_asyncTaskStacks;
AsyncTaskToStackTrace m_asyncTaskCreationStacks;
int m_maxAsyncCallStacks;
+ std::map<int, void*> m_idToTask;
+ std::unordered_map<void*, int> m_taskToId;
+ int m_lastTaskId;
protocol::HashSet<void*> m_recurringTasks;
int m_maxAsyncCallStackDepth;
-
std::vector<void*> m_currentTasks;
- std::vector<std::shared_ptr<AsyncStackTrace>> m_currentAsyncParent;
- std::vector<std::shared_ptr<AsyncStackTrace>> m_currentAsyncCreation;
-
- void collectOldAsyncStacksIfNeeded();
- void removeOldAsyncTasks(AsyncTaskToStackTrace& map);
- int m_asyncStacksCount = 0;
- // V8Debugger owns all the async stacks, while most of the other references
- // are weak, which allows to collect some stacks when there are too many.
- std::list<std::shared_ptr<AsyncStackTrace>> m_allAsyncStacks;
-
+ std::vector<std::unique_ptr<V8StackTraceImpl>> m_currentStacks;
+ std::vector<std::unique_ptr<V8StackTraceImpl>> m_currentCreationStacks;
protocol::HashMap<V8DebuggerAgentImpl*, int> m_maxAsyncCallStackDepthMap;
protocol::HashMap<void*, void*> m_parentTask;
protocol::HashMap<void*, void*> m_firstNextTask;
« no previous file with comments | « src/inspector/v8-console.cc ('k') | src/inspector/v8-debugger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698