Browse Source

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 <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
v7.x
Sam Roberts 8 years ago
committed by Italo A. Casas
parent
commit
0f4319a14a
No known key found for this signature in database GPG Key ID: 23EFEFE93C4CFFFE
  1. 2
      src/node.cc
  2. 5
      src/tracing/agent.cc
  3. 2
      src/tracing/agent.h

2
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)

5
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;

2
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:

Loading…
Cancel
Save