diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-10-30 14:12:57 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-10-30 18:13:57 +0100 |
| commit | 6eef68124fe76638e3418ab0333a9b14561b554f (patch) | |
| tree | c5c867c8fa3f51823f8eea376e16f166b9c4f759 /src | |
| parent | 1ea4b3998a1a43b570e7891c253e0e426bee6a1c (diff) | |
use custom Client::operator=(Client&&) to drop safe counts first
Diffstat (limited to 'src')
| -rw-r--r-- | src/client_manager.hh | 11 |
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{}; |
