From 9ac4df3c6c2eaa5943f9702e52125f7dcd456173 Mon Sep 17 00:00:00 2001 From: Lynix Date: Wed, 8 Jan 2014 10:48:23 +0100 Subject: [PATCH] Added move constructor/operator to DynLib Former-commit-id: af6c6b2ad7803a9ae6d7106188a0b69e341835c0 --- include/Nazara/Core/DynLib.hpp | 3 +++ src/Nazara/Core/DynLib.cpp | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/Nazara/Core/DynLib.hpp b/include/Nazara/Core/DynLib.hpp index 856aee276..27059e1b6 100644 --- a/include/Nazara/Core/DynLib.hpp +++ b/include/Nazara/Core/DynLib.hpp @@ -37,6 +37,7 @@ class NzDynLib : NzNonCopyable public: NzDynLib(); + NzDynLib(NzDynLib&& lib); ~NzDynLib(); NzString GetLastError() const; @@ -47,6 +48,8 @@ class NzDynLib : NzNonCopyable bool Load(const NzString& libraryPath, bool appendExtension = true); void Unload(); + NzDynLib& operator=(NzDynLib&& lib); + private: NazaraMutexAttrib(m_mutex, mutable) diff --git a/src/Nazara/Core/DynLib.cpp b/src/Nazara/Core/DynLib.cpp index 0266a695d..a1ec56949 100644 --- a/src/Nazara/Core/DynLib.cpp +++ b/src/Nazara/Core/DynLib.cpp @@ -21,6 +21,13 @@ m_impl(nullptr) { } +NzDynLib::NzDynLib(NzDynLib&& lib) : +m_lastError(std::move(lib.m_lastError)), +m_impl(lib.m_impl) +{ + lib.m_impl = nullptr; +} + NzDynLib::~NzDynLib() { Unload(); @@ -82,3 +89,15 @@ void NzDynLib::Unload() m_impl = nullptr; } } + +NzDynLib& NzDynLib::operator=(NzDynLib&& lib) +{ + Unload(); + + m_impl = lib.m_impl; + m_lastError = std::move(lib.m_lastError); + + lib.m_impl = nullptr; + + return *this; +}