Skip to content

Commit 4299a87

Browse files
bzoznodejs-ci
authored andcommitted
deps: fix V8 compilation with VS2013
VS2013 does not support defaulting move constructor and assignment operator. This adds explicit definitions of those methods for two classes. Fixes: #4
1 parent 1a11eca commit 4299a87

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

deps/v8/include/v8.h

+8-4
Original file line numberDiff line numberDiff line change
@@ -4092,10 +4092,12 @@ class V8_EXPORT WasmCompiledModule : public Object {
40924092
// supports move semantics, and does not support copy semantics.
40934093
class TransferrableModule final {
40944094
public:
4095-
TransferrableModule(TransferrableModule&& src) = default;
4095+
TransferrableModule(TransferrableModule&& src)
4096+
: compiled_code(std::move(src.compiled_code)),
4097+
wire_bytes(std::move(src.wire_bytes)) {}
40964098
TransferrableModule(const TransferrableModule& src) = delete;
40974099

4098-
TransferrableModule& operator=(TransferrableModule&& src) = default;
4100+
TransferrableModule& operator=(TransferrableModule&& src);
40994101
TransferrableModule& operator=(const TransferrableModule& src) = delete;
41004102

41014103
private:
@@ -4168,9 +4170,11 @@ class V8_EXPORT WasmModuleObjectBuilder final {
41684170
// Disable copy semantics *in this implementation*. We can choose to
41694171
// relax this, albeit it's not clear why.
41704172
WasmModuleObjectBuilder(const WasmModuleObjectBuilder&) = delete;
4171-
WasmModuleObjectBuilder(WasmModuleObjectBuilder&&) = default;
4173+
WasmModuleObjectBuilder(WasmModuleObjectBuilder&& src)
4174+
: received_buffers_(std::move(src.received_buffers_)),
4175+
total_size_(src.total_size_) {}
41724176
WasmModuleObjectBuilder& operator=(const WasmModuleObjectBuilder&) = delete;
4173-
WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&) = default;
4177+
WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&);
41744178

41754179
std::vector<Buffer> received_buffers_;
41764180
size_t total_size_ = 0;

deps/v8/src/api.cc

+15
Original file line numberDiff line numberDiff line change
@@ -7709,6 +7709,14 @@ Local<String> WasmCompiledModule::GetWasmWireBytes() {
77097709
return Local<String>::Cast(Utils::ToLocal(wire_bytes));
77107710
}
77117711

7712+
WasmCompiledModule::TransferrableModule&
7713+
WasmCompiledModule::TransferrableModule::operator=(
7714+
TransferrableModule&& src) {
7715+
compiled_code = std::move(src.compiled_code);
7716+
wire_bytes = std::move(src.wire_bytes);
7717+
return *this;
7718+
}
7719+
77127720
// Currently, wasm modules are bound, both to Isolate and to
77137721
// the Context they were created in. The currently-supported means to
77147722
// decontextualize and then re-contextualize a module is via
@@ -7822,6 +7830,13 @@ MaybeLocal<WasmCompiledModule> WasmModuleObjectBuilder::Finish() {
78227830
return WasmCompiledModule::Compile(isolate_, wire_bytes.get(), total_size_);
78237831
}
78247832

7833+
WasmModuleObjectBuilder&
7834+
WasmModuleObjectBuilder::operator=(WasmModuleObjectBuilder&& src) {
7835+
received_buffers_ = std::move(src.received_buffers_);
7836+
total_size_ = src.total_size_;
7837+
return *this;
7838+
}
7839+
78257840
// static
78267841
v8::ArrayBuffer::Allocator* v8::ArrayBuffer::Allocator::NewDefaultAllocator() {
78277842
return new ArrayBufferAllocator();

0 commit comments

Comments
 (0)