From 0f4319a14a9af5b31fb0a0d541ef57eac452f5a2 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Wed, 5 Apr 2017 12:09:32 -0700 Subject: [PATCH] src: use std::string for trace enabled_categories A std::string manages its own memory, so using one removes the implicit assumption that the argv vector passed to node will never be deallocated. Also, the enabled_categories are used to construct a std::stringstream, so its simpler to use the standard library consistently. PR-URL: https://github.com/nodejs/node/pull/12242 Reviewed-By: Richard Lau Reviewed-By: Colin Ihrig Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Daniel Bevenius --- src/node.cc | 2 +- src/tracing/agent.cc | 5 +++-- src/tracing/agent.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/node.cc b/src/node.cc index 19dfb0db19384f..a7b4a789cc3874 100644 --- a/src/node.cc +++ b/src/node.cc @@ -153,7 +153,7 @@ static node_module* modlist_builtin; static node_module* modlist_linked; static node_module* modlist_addon; static bool trace_enabled = false; -static const char* trace_enabled_categories = nullptr; +static std::string trace_enabled_categories; // NOLINT(runtime/string) #if defined(NODE_HAVE_I18N_SUPPORT) // Path to ICU data (for i18n / Intl) diff --git a/src/tracing/agent.cc b/src/tracing/agent.cc index ceab09e5a2789c..669bae130c7f94 100644 --- a/src/tracing/agent.cc +++ b/src/tracing/agent.cc @@ -10,10 +10,11 @@ namespace node { namespace tracing { using v8::platform::tracing::TraceConfig; +using std::string; Agent::Agent() {} -void Agent::Start(v8::Platform* platform, const char* enabled_categories) { +void Agent::Start(v8::Platform* platform, const string& enabled_categories) { platform_ = platform; int err = uv_loop_init(&tracing_loop_); @@ -26,7 +27,7 @@ void Agent::Start(v8::Platform* platform, const char* enabled_categories) { tracing_controller_ = new TracingController(); TraceConfig* trace_config = new TraceConfig(); - if (enabled_categories) { + if (!enabled_categories.empty()) { std::stringstream category_list(enabled_categories); while (category_list.good()) { std::string category; diff --git a/src/tracing/agent.h b/src/tracing/agent.h index f6cb5af97f4bbc..2174d5b8965c2a 100644 --- a/src/tracing/agent.h +++ b/src/tracing/agent.h @@ -12,7 +12,7 @@ namespace tracing { class Agent { public: explicit Agent(); - void Start(v8::Platform* platform, const char* enabled_categories); + void Start(v8::Platform* platform, const std::string& enabled_categories); void Stop(); private: