Fix copy and move semantics for DnD proxy handle

This commit is contained in:
Robbert van der Helm
2021-07-10 02:17:10 +02:00
parent dbb1b09256
commit bc9d4d02a2
2 changed files with 3 additions and 20 deletions
+1 -18
View File
@@ -166,27 +166,10 @@ WineXdndProxy::Handle::~Handle() noexcept {
WineXdndProxy::Handle::Handle(const Handle& o) noexcept : proxy(o.proxy) {
instance_reference_count += 1;
}
WineXdndProxy::Handle& WineXdndProxy::Handle::operator=(
const Handle& o) noexcept {
if (&o != this) {
instance_reference_count += 1;
proxy = o.proxy;
}
return *this;
}
WineXdndProxy::Handle::Handle(Handle&& o) noexcept : proxy(std::move(o.proxy)) {
WineXdndProxy::Handle::Handle(Handle&& o) noexcept : proxy(o.proxy) {
instance_reference_count += 1;
}
WineXdndProxy::Handle& WineXdndProxy::Handle::operator=(Handle&& o) noexcept {
if (&o != this) {
instance_reference_count += 1;
proxy = std::move(o.proxy);
}
return *this;
}
WineXdndProxy::Handle WineXdndProxy::init_proxy() {
// We're doing a bit of a hybrid between a COM-style reference counted smart
+2 -2
View File
@@ -60,10 +60,10 @@ class WineXdndProxy {
~Handle() noexcept;
Handle(const Handle&) noexcept;
Handle& operator=(const Handle&) noexcept;
Handle& operator=(const Handle&) noexcept = default;
Handle(Handle&&) noexcept;
Handle& operator=(Handle&&) noexcept;
Handle& operator=(Handle&&) noexcept = default;
private:
WineXdndProxy* proxy;