summaryrefslogtreecommitdiff
path: root/src/node_perf.cc
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2018-08-10 09:58:20 -0700
committerGeorge Adams <george.adams@uk.ibm.com>2018-08-13 18:38:55 +0100
commitf6eab1acf21186a4cbc8d4537d00293326dfa2a1 (patch)
tree0e1f7fc949fca3e0ab6cffe9ffad90ffc60d6b47 /src/node_perf.cc
parent2eb78e6dc324b65cb4492a1e0111e9bc68b77921 (diff)
downloadandroid-node-v8-f6eab1acf21186a4cbc8d4537d00293326dfa2a1.tar.gz
android-node-v8-f6eab1acf21186a4cbc8d4537d00293326dfa2a1.tar.bz2
android-node-v8-f6eab1acf21186a4cbc8d4537d00293326dfa2a1.zip
perf_hooks: avoid memory leak on gc observer
Fixes: https://github.com/nodejs/node/issues/22229 PR-URL: https://github.com/nodejs/node/pull/22241 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yang Guo <yangguo@chromium.org> Reviewed-By: George Adams <george.adams@uk.ibm.com>
Diffstat (limited to 'src/node_perf.cc')
-rw-r--r--src/node_perf.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/node_perf.cc b/src/node_perf.cc
index 5a50223ed5..9c995d3b8d 100644
--- a/src/node_perf.cc
+++ b/src/node_perf.cc
@@ -272,6 +272,9 @@ void MarkGarbageCollectionEnd(Isolate* isolate,
v8::GCCallbackFlags flags,
void* data) {
Environment* env = static_cast<Environment*>(data);
+ // If no one is listening to gc performance entries, do not create them.
+ if (!env->performance_state()->observers[NODE_PERFORMANCE_ENTRY_TYPE_GC])
+ return;
GCPerformanceEntry* entry =
new GCPerformanceEntry(env,
static_cast<PerformanceGCKind>(type),