Skip to content

Commit 93b0e39

Browse files
bnoordhuisaddaleax
authored andcommitted
src: remove uses of node::InitializeV8Platform()
This requires minor changes to src/env.cc to deal with `node::tracing::AgentWriterHandle::GetTracingController()` now possibly returning a nullptr, because the cctest doesn't set one. It seems plausible to me that embedders won't set one either so that seems like an okay change to make. It avoids embedders having to track down nullptr segfaults. PR-URL: #31245 Refs: #31217 Reviewed-By: David Carlier <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
1 parent aff6fff commit 93b0e39

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

src/env.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ Environment::Environment(IsolateData* isolate_data,
332332

333333
if (tracing::AgentWriterHandle* writer = GetTracingAgentWriter()) {
334334
trace_state_observer_ = std::make_unique<TrackingTraceStateObserver>(this);
335-
TracingController* tracing_controller = writer->GetTracingController();
336-
tracing_controller->AddTraceStateObserver(trace_state_observer_.get());
335+
if (TracingController* tracing_controller = writer->GetTracingController())
336+
tracing_controller->AddTraceStateObserver(trace_state_observer_.get());
337337
}
338338

339339
destroy_async_id_list_.reserve(512);
@@ -409,8 +409,8 @@ Environment::~Environment() {
409409
if (trace_state_observer_) {
410410
tracing::AgentWriterHandle* writer = GetTracingAgentWriter();
411411
CHECK_NOT_NULL(writer);
412-
TracingController* tracing_controller = writer->GetTracingController();
413-
tracing_controller->RemoveTraceStateObserver(trace_state_observer_.get());
412+
if (TracingController* tracing_controller = writer->GetTracingController())
413+
tracing_controller->RemoveTraceStateObserver(trace_state_observer_.get());
414414
}
415415

416416
delete[] http_parser_buffer_;

src/node.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1077,7 +1077,8 @@ InitializationResult InitializeOncePerProcess(int argc, char** argv) {
10771077
V8::SetEntropySource(crypto::EntropySource);
10781078
#endif // HAVE_OPENSSL
10791079

1080-
InitializeV8Platform(per_process::cli_options->v8_thread_pool_size);
1080+
per_process::v8_platform.Initialize(
1081+
per_process::cli_options->v8_thread_pool_size);
10811082
V8::Initialize();
10821083
performance::performance_v8_start = PERFORMANCE_NOW();
10831084
per_process::v8_initialized = true;

test/cctest/node_test_fixture.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,13 @@ class NodeZeroIsolateTestFixture : public ::testing::Test {
8080

8181
tracing_agent = std::make_unique<node::tracing::Agent>();
8282
node::tracing::TraceEventHelper::SetAgent(tracing_agent.get());
83+
node::tracing::TracingController* tracing_controller =
84+
tracing_agent->GetTracingController();
8385
CHECK_EQ(0, uv_loop_init(&current_loop));
84-
platform.reset(static_cast<node::NodePlatform*>(
85-
node::InitializeV8Platform(4)));
86+
static constexpr int kV8ThreadPoolSize = 4;
87+
platform.reset(
88+
new node::NodePlatform(kV8ThreadPoolSize, tracing_controller));
89+
v8::V8::InitializePlatform(platform.get());
8690
v8::V8::Initialize();
8791
}
8892

@@ -108,7 +112,7 @@ class NodeTestFixture : public NodeZeroIsolateTestFixture {
108112

109113
void SetUp() override {
110114
NodeZeroIsolateTestFixture::SetUp();
111-
isolate_ = NewIsolate(allocator.get(), &current_loop);
115+
isolate_ = NewIsolate(allocator.get(), &current_loop, platform.get());
112116
CHECK_NOT_NULL(isolate_);
113117
isolate_->Enter();
114118
}

0 commit comments

Comments
 (0)