Move semantics in SizeNotifiable.

This commit is contained in:
King_DuckZ 2014-03-26 23:00:02 +01:00
parent 6fe884cd5a
commit 2a4ae78374
4 changed files with 40 additions and 22 deletions

View file

@ -25,16 +25,24 @@ namespace cloonel {
///----------------------------------------------------------------------
void AutoRegister::Unregister() noexcept {
#if !defined(NDEBUG)
assert(m_registered);
assert(m_registered or not m_sdlmain);
m_registered = false;
#endif
assert(m_sdlmain);
m_sdlmain->UnregisterForResChange(m_id);
if (m_registered) {
assert(m_sdlmain);
m_sdlmain->UnregisterForResChange(m_id);
}
}
///----------------------------------------------------------------------
///----------------------------------------------------------------------
void AutoRegister::Swap (AutoRegister& parOther) noexcept {
AutoRegister::AutoRegister (AutoRegister&& parOther) :
m_sdlmain(nullptr),
m_id(0)
#if !defined(NDEBUG)
, m_registered(false)
#endif
{
std::swap(m_sdlmain, parOther.m_sdlmain);
std::swap(m_id, parOther.m_id);
#if !defined(NDEBUG)
@ -48,11 +56,4 @@ namespace cloonel {
void SizeNotifiableBase::NotifyResChanged (const SizeRatio& parSize) {
m_scaleRatio = parSize.Ratio();
}
///--------------------------------------------------------------------------
///--------------------------------------------------------------------------
void SizeNotifiableBase::swap (SizeNotifiableBase& parOther) noexcept {
std::swap(m_scaleRatio.x(), parOther.m_scaleRatio.x());
std::swap(m_scaleRatio.y(), parOther.m_scaleRatio.y());
}
} //namespace cloonel