From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeremy Rose Date: Wed, 28 Sep 2022 14:44:32 -0700 Subject: force CppHeapCreateParams to be noncopyable Ref https://chromium-review.googlesource.com/c/v8/v8/+/3348007 Without this change, clang on windows for some reason thinks that CppHeapCreateParams is copyable and tries to generate copy constructors for it, which doesn't work because vector isn't copyable. If Electron compiles on Windows without this patch then it's no longer needed. diff --git a/include/v8-cppgc.h b/include/v8-cppgc.h index 4a457027c9f76b5d75f8f693ebe31fd616134849..16548d3053563d2a5891fb8967a2b63a1f920f95 100644 --- a/include/v8-cppgc.h +++ b/include/v8-cppgc.h @@ -76,6 +76,12 @@ struct WrapperDescriptor final { uint16_t embedder_id_for_garbage_collected; }; +struct NonCopyable { + NonCopyable() = default; + NonCopyable(const NonCopyable&) = delete; + NonCopyable(NonCopyable&&) = default; +}; + struct V8_EXPORT CppHeapCreateParams { CppHeapCreateParams( std::vector> custom_spaces, @@ -100,6 +106,7 @@ struct V8_EXPORT CppHeapCreateParams { */ cppgc::Heap::SweepingType sweeping_support = cppgc::Heap::SweepingType::kIncrementalAndConcurrent; + NonCopyable non_copyable_; }; /**