Commit 79a9d2eb authored by Corentin Pescheloche's avatar Corentin Pescheloche Committed by V8 LUCI CQ

Fix destructor for EmbedderStateScope

EmbedderState is forward declared in public header for
EmbedderStateScope. Default std::unique_ptr's destructor needs a fully
defined class. Defining default destructor in implementation file fixes
this.

Bug: chromium:1263871
Change-Id: I8ccc58f56a758927dc5d7a39387188185e7d3827
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3338697
Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78363}
parent 1e4593f3
...@@ -32,6 +32,8 @@ class V8_EXPORT EmbedderStateScope { ...@@ -32,6 +32,8 @@ class V8_EXPORT EmbedderStateScope {
EmbedderStateScope(Isolate* isolate, Local<v8::Context> context, EmbedderStateScope(Isolate* isolate, Local<v8::Context> context,
EmbedderStateTag tag); EmbedderStateTag tag);
~EmbedderStateScope();
private: private:
// Declaring operator new and delete as deleted is not spec compliant. // Declaring operator new and delete as deleted is not spec compliant.
// Therefore declare them private instead to disable dynamic alloc // Therefore declare them private instead to disable dynamic alloc
......
...@@ -10366,6 +10366,11 @@ EmbedderStateScope::EmbedderStateScope(Isolate* isolate, ...@@ -10366,6 +10366,11 @@ EmbedderStateScope::EmbedderStateScope(Isolate* isolate,
EmbedderStateTag tag) EmbedderStateTag tag)
: embedder_state_(new internal::EmbedderState(isolate, context, tag)) {} : embedder_state_(new internal::EmbedderState(isolate, context, tag)) {}
// std::unique_ptr's destructor is not compatible with Forward declared
// EmbedderState class.
// Default destructor must be defined in implementation file.
EmbedderStateScope::~EmbedderStateScope() = default;
void TracedReferenceBase::CheckValue() const { void TracedReferenceBase::CheckValue() const {
#ifdef V8_HOST_ARCH_64_BIT #ifdef V8_HOST_ARCH_64_BIT
if (!val_) return; if (!val_) return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment