diff options
author | GauthamBanasandra <gautham.bangalore@gmail.com> | 2019-07-06 19:24:26 +0530 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-07-12 21:59:36 -0700 |
commit | cf929c04b082f0d1d980772d343f056ea4fd7359 (patch) | |
tree | 974445741cfeb0fec793bf4694841f5428985914 /src | |
parent | 9c4bdfe9b27aae59ca5a9c9e9e9bf0460d284571 (diff) | |
download | node-new-cf929c04b082f0d1d980772d343f056ea4fd7359.tar.gz |
src, tools: replace raw ptr with smart ptr
NodeMainInstance::Create will now returrn
an instance of NodeMainInstance in a
unique_ptr.
PR-URL: https://github.com/nodejs/node/pull/28577
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/node_main_instance.cc | 6 | ||||
-rw-r--r-- | src/node_main_instance.h | 16 |
2 files changed, 13 insertions, 9 deletions
diff --git a/src/node_main_instance.cc b/src/node_main_instance.cc index f49b9fbb4d..5d5a48cc36 100644 --- a/src/node_main_instance.cc +++ b/src/node_main_instance.cc @@ -30,13 +30,14 @@ NodeMainInstance::NodeMainInstance(Isolate* isolate, SetIsolateUpForNode(isolate_, IsolateSettingCategories::kMisc); } -NodeMainInstance* NodeMainInstance::Create( +std::unique_ptr<NodeMainInstance> NodeMainInstance::Create( Isolate* isolate, uv_loop_t* event_loop, MultiIsolatePlatform* platform, const std::vector<std::string>& args, const std::vector<std::string>& exec_args) { - return new NodeMainInstance(isolate, event_loop, platform, args, exec_args); + return std::unique_ptr<NodeMainInstance>( + new NodeMainInstance(isolate, event_loop, platform, args, exec_args)); } NodeMainInstance::NodeMainInstance( @@ -81,7 +82,6 @@ NodeMainInstance::NodeMainInstance( void NodeMainInstance::Dispose() { CHECK(!owns_isolate_); platform_->DrainTasks(isolate_); - delete this; } NodeMainInstance::~NodeMainInstance() { diff --git a/src/node_main_instance.h b/src/node_main_instance.h index a971c899b8..5bc18cb3de 100644 --- a/src/node_main_instance.h +++ b/src/node_main_instance.h @@ -4,6 +4,8 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include <cstddef> +#include <memory> + #include "node.h" #include "util.h" #include "uv.h" @@ -22,7 +24,7 @@ class NodeMainInstance { // platform->RegisterIsolate(isolate, loop); // isolate->Initialize(...); // isolate->Enter(); - // NodeMainInstance* main_instance = + // std::unique_ptr<NodeMainInstance> main_instance = // NodeMainInstance::Create(isolate, loop, args, exec_args); // // When tearing it down: @@ -33,11 +35,13 @@ class NodeMainInstance { // platform->UnregisterIsolate(isolate); // // After calling Dispose() the main_instance is no longer accessible. - static NodeMainInstance* Create(v8::Isolate* isolate, - uv_loop_t* event_loop, - MultiIsolatePlatform* platform, - const std::vector<std::string>& args, - const std::vector<std::string>& exec_args); + static std::unique_ptr<NodeMainInstance> Create( + v8::Isolate* isolate, + uv_loop_t* event_loop, + MultiIsolatePlatform* platform, + const std::vector<std::string>& args, + const std::vector<std::string>& exec_args); + void Dispose(); // Create a main instance that owns the isolate |