summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMyk Melez <myk@mykzilla.org>2017-01-31 09:56:09 -0800
committerJames M Snell <jasnell@gmail.com>2017-02-03 14:49:23 -0800
commit046f66a55451fba336aba8aa9bf881ffb5e74c30 (patch)
treea719cb248150a19ec79e832ead1b9dc75263ca8f /src
parent7d2dc90aeb7a7e05588b1623dd03be72970fa222 (diff)
downloadandroid-node-v8-046f66a55451fba336aba8aa9bf881ffb5e74c30.tar.gz
android-node-v8-046f66a55451fba336aba8aa9bf881ffb5e74c30.tar.bz2
android-node-v8-046f66a55451fba336aba8aa9bf881ffb5e74c30.zip
src: fix building --without-v8-plartform
* declare v8_platform.platform_ unconditionally v8_platform.platform_ is referenced by node::Start without regard to the value of NODE_USE_V8_PLATFORM, so it should be declared unconditionally, otherwise Node fails to compile when !NODE_USE_V8_PLATFORM. * update v8_platform.StartInspector signature The call signature of v8_platform.StartInspector needs to be the same whether or not NODE_USE_V8_PLATFORM, otherwise Node will fail to compile if HAVE_INSPECTOR and !NODE_USE_V8_PLATFORM. * don't call tracing_agent->Start w/nullptr node::tracing::Agent::Start can't accept a nullptr argument to its platform parameter, so don't call it when Node is compiled with NODE_USE_V8_PLATFORM=0. * refactor tracing_agent into v8_platform Move tracing_agent global into the v8_platform struct, renaming it to tracing_agent_; CHECK(tracing_agent_ == nullptr) in StartTracingAgent() to detect double calls; and relace another tracing_agent->Stop() call with a call to StopTracingAgent(). PR-URL: https://github.com/nodejs/node/pull/11088 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/node.cc27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/node.cc b/src/node.cc
index 90eee0fb9f..a678c177f3 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -200,7 +200,6 @@ static uv_async_t dispatch_debug_messages_async;
static Mutex node_isolate_mutex;
static v8::Isolate* node_isolate;
-static tracing::Agent* tracing_agent;
static node::DebugOptions debug_options;
@@ -228,16 +227,33 @@ static struct {
}
#endif // HAVE_INSPECTOR
+ void StartTracingAgent() {
+ CHECK(tracing_agent_ == nullptr);
+ tracing_agent_ = new tracing::Agent();
+ tracing_agent_->Start(platform_, trace_enabled_categories);
+ }
+
+ void StopTracingAgent() {
+ tracing_agent_->Stop();
+ }
+
v8::Platform* platform_;
+ tracing::Agent* tracing_agent_;
#else // !NODE_USE_V8_PLATFORM
void Initialize(int thread_pool_size) {}
void PumpMessageLoop(Isolate* isolate) {}
void Dispose() {}
bool StartInspector(Environment *env, const char* script_path,
- int port, bool wait) {
+ const node::DebugOptions& options) {
env->ThrowError("Node compiled with NODE_USE_V8_PLATFORM=0");
return false; // make compiler happy
}
+
+ void StartTracingAgent() {
+ fprintf(stderr, "Node compiled with NODE_USE_V8_PLATFORM=0, "
+ "so event tracing is not available.\n");
+ }
+ void StopTracingAgent() {}
#endif // !NODE_USE_V8_PLATFORM
} v8_platform;
@@ -3386,7 +3402,7 @@ void SetupProcessObject(Environment* env,
void SignalExit(int signo) {
uv_tty_reset_mode();
if (trace_enabled) {
- tracing_agent->Stop();
+ v8_platform.StopTracingAgent();
}
#ifdef __FreeBSD__
// FreeBSD has a nasty bug, see RegisterSignalHandler for details
@@ -4533,15 +4549,14 @@ int Start(int argc, char** argv) {
if (trace_enabled) {
fprintf(stderr, "Warning: Trace event is an experimental feature "
"and could change at any time.\n");
- tracing_agent = new tracing::Agent();
- tracing_agent->Start(v8_platform.platform_, trace_enabled_categories);
+ v8_platform.StartTracingAgent();
}
V8::Initialize();
v8_initialized = true;
const int exit_code =
Start(uv_default_loop(), argc, argv, exec_argc, exec_argv);
if (trace_enabled) {
- tracing_agent->Stop();
+ v8_platform.StopTracingAgent();
}
v8_initialized = false;
V8::Dispose();