diff --git a/include/Nazara/Core/Clock.hpp b/include/Nazara/Core/Clock.hpp index b510137b7..ba39018fb 100644 --- a/include/Nazara/Core/Clock.hpp +++ b/include/Nazara/Core/Clock.hpp @@ -19,6 +19,7 @@ class NAZARA_API NzClock { public: NzClock(nzUInt64 startingValue = 0, bool paused = false); + NzClock(const NzClock& clock) = default; float GetSeconds() const; nzUInt64 GetMicroseconds() const; @@ -30,6 +31,8 @@ class NAZARA_API NzClock void Restart(); void Unpause(); + NzClock& operator=(const NzClock& clock) = default; + private: NazaraMutexAttrib(m_mutex, mutable) diff --git a/include/Nazara/Core/Directory.hpp b/include/Nazara/Core/Directory.hpp index 1a7ae5905..393914473 100644 --- a/include/Nazara/Core/Directory.hpp +++ b/include/Nazara/Core/Directory.hpp @@ -8,6 +8,7 @@ #define NAZARA_DIRECTORY_HPP #include +#include #include #if defined(NAZARA_PLATFORM_WINDOWS) @@ -27,7 +28,7 @@ class NzDirectoryImpl; -class NAZARA_API NzDirectory +class NAZARA_API NzDirectory : NzNonCopyable { public: NzDirectory(); diff --git a/src/Nazara/Core/ByteArray.cpp b/src/Nazara/Core/ByteArray.cpp index 94903dd4d..4636b826e 100644 --- a/src/Nazara/Core/ByteArray.cpp +++ b/src/Nazara/Core/ByteArray.cpp @@ -404,11 +404,14 @@ nzUInt8 NzByteArray::operator[](unsigned int pos) const NzByteArray& NzByteArray::operator=(const NzByteArray& array) { - ReleaseArray(); + if (this != &array) + { + ReleaseArray(); - m_sharedArray = array.m_sharedArray; - if (m_sharedArray != &emptyArray) - m_sharedArray->refCount++; + m_sharedArray = array.m_sharedArray; + if (m_sharedArray != &emptyArray) + m_sharedArray->refCount++; + } return *this; } diff --git a/src/Nazara/Core/String.cpp b/src/Nazara/Core/String.cpp index 54e5b3eb7..cac71d221 100644 --- a/src/Nazara/Core/String.cpp +++ b/src/Nazara/Core/String.cpp @@ -2785,35 +2785,19 @@ NzString& NzString::Set(const char* string, unsigned int length) NzString& NzString::Set(const std::string& string) { - if (string.size() > 0) - { - if (m_sharedString->capacity >= string.size()) - EnsureOwnership(true); - else - { - ReleaseString(); - - m_sharedString = new SharedString; - m_sharedString->capacity = string.size(); - m_sharedString->string = new char[string.size()+1]; - } - - m_sharedString->size = string.size(); - std::memcpy(m_sharedString->string, string.c_str(), string.size()+1); - } - else - ReleaseString(); - - return *this; + return Set(string.data(), string.size()); } NzString& NzString::Set(const NzString& string) { - ReleaseString(); + if (this != &string) + { + ReleaseString(); - m_sharedString = string.m_sharedString; - if (m_sharedString != &emptyString) - m_sharedString->refCount++; + m_sharedString = string.m_sharedString; + if (m_sharedString != &emptyString) + m_sharedString->refCount++; + } return *this; }