From 283a967e356311a467113eea450a81827d43c969 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sat, 28 Apr 2018 20:50:19 +0200 Subject: [PATCH] src: avoid `std::make_unique` Work around https://github.com/nodejs/build/issues/1254, which effectively breaks stress test CI and CITGM, by avoiding `std::make_unique` for now. This workaround should be reverted once that issue is resolved. Refs: https://github.com/nodejs/build/issues/1254 PR-URL: https://github.com/nodejs/node/pull/20386 Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Matheus Marchini --- src/inspector_agent.cc | 8 +++++--- src/inspector_io.cc | 4 ++-- src/inspector_js_api.cc | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 1530b206456bb5..4e0c04a7b95527 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -367,8 +367,9 @@ class NodeInspectorClient : public V8InspectorClient { int connectFrontend(std::unique_ptr delegate) { events_dispatched_ = true; int session_id = next_session_id_++; - channels_[session_id] = - std::make_unique(client_, std::move(delegate)); + // TODO(addaleax): Revert back to using make_unique once we get issues + // with CI resolved (i.e. revert the patch that added this comment). + channels_[session_id].reset(new ChannelImpl(client_, std::move(delegate))); return session_id; } @@ -569,7 +570,8 @@ void Agent::Stop() { std::unique_ptr Agent::Connect( std::unique_ptr delegate) { int session_id = client_->connectFrontend(std::move(delegate)); - return std::make_unique(session_id, client_); + return std::unique_ptr( + new InspectorSession(session_id, client_)); } void Agent::WaitForDisconnect() { diff --git a/src/inspector_io.cc b/src/inspector_io.cc index 5e0d29d3caf2cd..38d88d7ab890c9 100644 --- a/src/inspector_io.cc +++ b/src/inspector_io.cc @@ -357,8 +357,8 @@ std::vector InspectorIo::GetTargetIds() const { TransportAction InspectorIo::Attach(int session_id) { Agent* agent = parent_env_->inspector_agent(); fprintf(stderr, "Debugger attached.\n"); - sessions_[session_id] = - agent->Connect(std::make_unique(this, session_id)); + sessions_[session_id] = agent->Connect(std::unique_ptr( + new IoSessionDelegate(this, session_id))); return TransportAction::kAcceptSession; } diff --git a/src/inspector_js_api.cc b/src/inspector_js_api.cc index 3d05b2f6feafff..37cdcecd61dabb 100644 --- a/src/inspector_js_api.cc +++ b/src/inspector_js_api.cc @@ -66,8 +66,8 @@ class JSBindingsConnection : public AsyncWrap { callback_(env->isolate(), callback) { Wrap(wrap, this); Agent* inspector = env->inspector_agent(); - session_ = inspector->Connect( - std::make_unique(env, this)); + session_ = inspector->Connect(std::unique_ptr( + new JSBindingsSessionDelegate(env, this))); } void OnMessage(Local value) {