Browse Source

fix: UvHandle move semantics (#43615)

reassign the uv_handle_t of the source
Charles Kerr 7 months ago
parent
commit
8c5e7bbf6b
1 changed files with 11 additions and 2 deletions
  1. 11 2
      shell/common/node_bindings.h

+ 11 - 2
shell/common/node_bindings.h

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