Skip to content

Commit fe1ac49

Browse files
bnoordhuiscodebytere
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 <devnexen@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent 8973209 commit fe1ac49

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

src/env.cc

+4-4
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[] heap_statistics_buffer_;

src/node.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -1015,7 +1015,8 @@ InitializationResult InitializeOncePerProcess(int argc, char** argv) {
10151015
V8::SetEntropySource(crypto::EntropySource);
10161016
#endif // HAVE_OPENSSL
10171017

1018-
InitializeV8Platform(per_process::cli_options->v8_thread_pool_size);
1018+
per_process::v8_platform.Initialize(
1019+
per_process::cli_options->v8_thread_pool_size);
10191020
V8::Initialize();
10201021
performance::performance_v8_start = PERFORMANCE_NOW();
10211022
per_process::v8_initialized = true;

test/cctest/node_test_fixture.h

+7-3
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,13 @@ class NodeTestFixture : public ::testing::Test {
8181

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

@@ -99,7 +103,7 @@ class NodeTestFixture : public ::testing::Test {
99103
void SetUp() override {
100104
allocator = ArrayBufferUniquePtr(node::CreateArrayBufferAllocator(),
101105
&node::FreeArrayBufferAllocator);
102-
isolate_ = NewIsolate(allocator.get(), &current_loop);
106+
isolate_ = NewIsolate(allocator.get(), &current_loop, platform.get());
103107
CHECK_NE(isolate_, nullptr);
104108
isolate_->Enter();
105109
}

0 commit comments

Comments
 (0)