Skip to content

Commit d34c256

Browse files
GauthamBanasandratargos
authored andcommitted
src, tools: replace raw ptr with smart ptr
NodeMainInstance::Create will now returrn an instance of NodeMainInstance in a unique_ptr. PR-URL: #28577 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Rich Trott <[email protected]>
1 parent c50e235 commit d34c256

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

src/node_main_instance.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,14 @@ NodeMainInstance::NodeMainInstance(Isolate* isolate,
3030
SetIsolateUpForNode(isolate_, IsolateSettingCategories::kMisc);
3131
}
3232

33-
NodeMainInstance* NodeMainInstance::Create(
33+
std::unique_ptr<NodeMainInstance> NodeMainInstance::Create(
3434
Isolate* isolate,
3535
uv_loop_t* event_loop,
3636
MultiIsolatePlatform* platform,
3737
const std::vector<std::string>& args,
3838
const std::vector<std::string>& exec_args) {
39-
return new NodeMainInstance(isolate, event_loop, platform, args, exec_args);
39+
return std::unique_ptr<NodeMainInstance>(
40+
new NodeMainInstance(isolate, event_loop, platform, args, exec_args));
4041
}
4142

4243
NodeMainInstance::NodeMainInstance(
@@ -81,7 +82,6 @@ NodeMainInstance::NodeMainInstance(
8182
void NodeMainInstance::Dispose() {
8283
CHECK(!owns_isolate_);
8384
platform_->DrainTasks(isolate_);
84-
delete this;
8585
}
8686

8787
NodeMainInstance::~NodeMainInstance() {

src/node_main_instance.h

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
55

66
#include <cstddef>
7+
#include <memory>
8+
79
#include "node.h"
810
#include "util.h"
911
#include "uv.h"
@@ -22,7 +24,7 @@ class NodeMainInstance {
2224
// platform->RegisterIsolate(isolate, loop);
2325
// isolate->Initialize(...);
2426
// isolate->Enter();
25-
// NodeMainInstance* main_instance =
27+
// std::unique_ptr<NodeMainInstance> main_instance =
2628
// NodeMainInstance::Create(isolate, loop, args, exec_args);
2729
//
2830
// When tearing it down:
@@ -33,11 +35,13 @@ class NodeMainInstance {
3335
// platform->UnregisterIsolate(isolate);
3436
//
3537
// After calling Dispose() the main_instance is no longer accessible.
36-
static NodeMainInstance* Create(v8::Isolate* isolate,
37-
uv_loop_t* event_loop,
38-
MultiIsolatePlatform* platform,
39-
const std::vector<std::string>& args,
40-
const std::vector<std::string>& exec_args);
38+
static std::unique_ptr<NodeMainInstance> Create(
39+
v8::Isolate* isolate,
40+
uv_loop_t* event_loop,
41+
MultiIsolatePlatform* platform,
42+
const std::vector<std::string>& args,
43+
const std::vector<std::string>& exec_args);
44+
4145
void Dispose();
4246

4347
// Create a main instance that owns the isolate

tools/snapshot/snapshot_builder.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ std::string SnapshotBuilder::Generate(
7070
Isolate* isolate = Isolate::Allocate();
7171
per_process::v8_platform.Platform()->RegisterIsolate(isolate,
7272
uv_default_loop());
73-
NodeMainInstance* main_instance = nullptr;
73+
std::unique_ptr<NodeMainInstance> main_instance;
7474
std::string result;
7575

7676
{

0 commit comments

Comments
 (0)