Fixed leaks

Former-commit-id: 2f0a73b3bb5df04c13200d71dc198e2fe9ec30e1
This commit is contained in:
Lynix 2013-04-06 00:13:56 +02:00
parent 1c59676051
commit 8c77d6e990
1 changed files with 12 additions and 27 deletions

View File

@ -54,6 +54,8 @@ template<typename T>
bool NzResourceRef<T>::Reset(T* resource)
{
bool destroyed = false;
if (m_resource != resource)
{
if (m_resource)
{
destroyed = m_resource->RemoveResourceReference();
@ -63,6 +65,7 @@ bool NzResourceRef<T>::Reset(T* resource)
m_resource = resource;
if (m_resource)
m_resource->AddResourceReference();
}
return destroyed;
}
@ -96,16 +99,7 @@ T* NzResourceRef<T>::operator->() const
template<typename T>
NzResourceRef<T>& NzResourceRef<T>::operator=(T* resource)
{
if (m_resource != resource)
{
Reset();
if (resource)
{
m_resource = resource;
m_resource->AddResourceReference();
}
}
Reset(resource);
return *this;
}
@ -113,16 +107,7 @@ NzResourceRef<T>& NzResourceRef<T>::operator=(T* resource)
template<typename T>
NzResourceRef<T>& NzResourceRef<T>::operator=(const NzResourceRef& ref)
{
if (m_resource != ref.m_resource)
{
Reset();
if (ref)
{
m_resource = ref.m_resource;
m_resource->AddResourceReference();
}
}
Reset(ref.m_resource);
return *this;
}