fix: UvHandle move semantics (#43634)

reassign the uv_handle_t of the source

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
trop[bot] 2024-09-09 10:35:58 -05:00 committed by GitHub
parent 8d9ed52c72
commit 67da1f2f9f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -62,8 +62,17 @@ class UvHandle {
UvHandle() : t_{new T} {} UvHandle() : t_{new T} {}
~UvHandle() { reset(); } ~UvHandle() { reset(); }
UvHandle(UvHandle&&) = default; explicit UvHandle(UvHandle&& that) {
UvHandle& operator=(UvHandle&&) = default; t_ = that.t_;
that.t_ = nullptr;
}
UvHandle& operator=(UvHandle&& that) {
reset();
t_ = that.t_;
that.t_ = nullptr;
return *this;
}
UvHandle(const UvHandle&) = delete; UvHandle(const UvHandle&) = delete;
UvHandle& operator=(const UvHandle&) = delete; UvHandle& operator=(const UvHandle&) = delete;