Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 7365b00

Browse filesBrowse files
addaleaxtargos
authored andcommitted
src: do not leak NodeTraceStateObserver
This would otherwise be reported as a memory leak by automated tools. PR-URL: #25180 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
1 parent 5b4fab1 commit 7365b00
Copy full SHA for 7365b00

File tree

Expand file treeCollapse file tree

1 file changed

+6
-3
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+6
-3
lines changed
Open diff view settings
Collapse file

‎src/node.cc‎

Copy file name to clipboardExpand all lines: src/node.cc
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,6 @@ class NodeTraceStateObserver :
211211

212212
// This only runs the first time tracing is enabled
213213
controller_->RemoveTraceStateObserver(this);
214-
delete this;
215214
}
216215

217216
void OnTraceDisabled() override {
@@ -233,8 +232,10 @@ static struct {
233232
void Initialize(int thread_pool_size) {
234233
tracing_agent_.reset(new tracing::Agent());
235234
node::tracing::TraceEventHelper::SetAgent(tracing_agent_.get());
236-
auto controller = tracing_agent_->GetTracingController();
237-
controller->AddTraceStateObserver(new NodeTraceStateObserver(controller));
235+
node::tracing::TracingController* controller =
236+
tracing_agent_->GetTracingController();
237+
trace_state_observer_.reset(new NodeTraceStateObserver(controller));
238+
controller->AddTraceStateObserver(trace_state_observer_.get());
238239
StartTracingAgent();
239240
// Tracing must be initialized before platform threads are created.
240241
platform_ = new NodePlatform(thread_pool_size, controller);
@@ -248,6 +249,7 @@ static struct {
248249
// Destroy tracing after the platform (and platform threads) have been
249250
// stopped.
250251
tracing_agent_.reset(nullptr);
252+
trace_state_observer_.reset(nullptr);
251253
}
252254

253255
void DrainVMTasks(Isolate* isolate) {
@@ -300,6 +302,7 @@ static struct {
300302
return platform_;
301303
}
302304

305+
std::unique_ptr<NodeTraceStateObserver> trace_state_observer_;
303306
std::unique_ptr<tracing::Agent> tracing_agent_;
304307
tracing::AgentWriterHandle tracing_file_writer_;
305308
NodePlatform* platform_;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.