diff options
author | James M Snell <jasnell@gmail.com> | 2018-08-10 09:58:20 -0700 |
---|---|---|
committer | George Adams <george.adams@uk.ibm.com> | 2018-08-13 18:38:55 +0100 |
commit | f6eab1acf21186a4cbc8d4537d00293326dfa2a1 (patch) | |
tree | 0e1f7fc949fca3e0ab6cffe9ffad90ffc60d6b47 /src/node_perf.cc | |
parent | 2eb78e6dc324b65cb4492a1e0111e9bc68b77921 (diff) | |
download | android-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.cc | 3 |
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), |