summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-10-30 14:12:57 +0100
committerMaxime Coste <frrrwww@gmail.com>2012-10-30 18:13:57 +0100
commit6eef68124fe76638e3418ab0333a9b14561b554f (patch)
treec5c867c8fa3f51823f8eea376e16f166b9c4f759 /src
parent1ea4b3998a1a43b570e7891c253e0e426bee6a1c (diff)
use custom Client::operator=(Client&&) to drop safe counts first
Diffstat (limited to 'src')
-rw-r--r--src/client_manager.hh11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/client_manager.hh b/src/client_manager.hh
index a9dac1a0..99500d4f 100644
--- a/src/client_manager.hh
+++ b/src/client_manager.hh
@@ -19,7 +19,16 @@ struct Client
context(new Context(*input_handler, window, *ui)) {}
Client(Client&&) = default;
- Client& operator=(Client&&) = default;
+ Client& operator=(Client&& other)
+ {
+ // drop safe pointers first
+ context.reset();
+
+ ui = std::move(other.ui);
+ input_handler = std::move(other.input_handler);
+ context = std::move(other.context);
+ return *this;
+ }
};
struct client_removed{};