Skip to content

Commit 60ffc5b

Browse files
bzoztargos
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: nodejs/node-v8#4
1 parent ce3d2d9 commit 60ffc5b

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
@@ -4057,10 +4057,12 @@ class V8_EXPORT WasmCompiledModule : public Object {
40574057
// supports move semantics, and does not support copy semantics.
40584058
class TransferrableModule final {
40594059
public:
4060-
TransferrableModule(TransferrableModule&& src) = default;
4060+
TransferrableModule(TransferrableModule&& src)
4061+
: compiled_code(std::move(src.compiled_code)),
4062+
wire_bytes(std::move(src.wire_bytes)) {}
40614063
TransferrableModule(const TransferrableModule& src) = delete;
40624064

4063-
TransferrableModule& operator=(TransferrableModule&& src) = default;
4065+
TransferrableModule& operator=(TransferrableModule&& src);
40644066
TransferrableModule& operator=(const TransferrableModule& src) = delete;
40654067

40664068
private:
@@ -4133,9 +4135,11 @@ class V8_EXPORT WasmModuleObjectBuilder final {
41334135
// Disable copy semantics *in this implementation*. We can choose to
41344136
// relax this, albeit it's not clear why.
41354137
WasmModuleObjectBuilder(const WasmModuleObjectBuilder&) = delete;
4136-
WasmModuleObjectBuilder(WasmModuleObjectBuilder&&) = default;
4138+
WasmModuleObjectBuilder(WasmModuleObjectBuilder&& src)
4139+
: received_buffers_(std::move(src.received_buffers_)),
4140+
total_size_(src.total_size_) {}
41374141
WasmModuleObjectBuilder& operator=(const WasmModuleObjectBuilder&) = delete;
4138-
WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&) = default;
4142+
WasmModuleObjectBuilder& operator=(WasmModuleObjectBuilder&&);
41394143

41404144
std::vector<Buffer> received_buffers_;
41414145
size_t total_size_ = 0;

deps/v8/src/api.cc

+15
Original file line numberDiff line numberDiff line change
@@ -7615,6 +7615,14 @@ Local<String> WasmCompiledModule::GetWasmWireBytes() {
76157615
return Local<String>::Cast(Utils::ToLocal(wire_bytes));
76167616
}
76177617

7618+
WasmCompiledModule::TransferrableModule&
7619+
WasmCompiledModule::TransferrableModule::operator=(
7620+
TransferrableModule&& src) {
7621+
compiled_code = std::move(src.compiled_code);
7622+
wire_bytes = std::move(src.wire_bytes);
7623+
return *this;
7624+
}
7625+
76187626
// Currently, wasm modules are bound, both to Isolate and to
76197627
// the Context they were created in. The currently-supported means to
76207628
// decontextualize and then re-contextualize a module is via
@@ -7729,6 +7737,13 @@ MaybeLocal<WasmCompiledModule> WasmModuleObjectBuilder::Finish() {
77297737
return WasmCompiledModule::Compile(isolate_, wire_bytes.get(), total_size_);
77307738
}
77317739

7740+
WasmModuleObjectBuilder&
7741+
WasmModuleObjectBuilder::operator=(WasmModuleObjectBuilder&& src) {
7742+
received_buffers_ = std::move(src.received_buffers_);
7743+
total_size_ = src.total_size_;
7744+
return *this;
7745+
}
7746+
77327747
// static
77337748
v8::ArrayBuffer::Allocator* v8::ArrayBuffer::Allocator::NewDefaultAllocator() {
77347749
return new ArrayBufferAllocator();

0 commit comments

Comments
 (0)