Added ResourceRef (Automatic resource reference)

Former-commit-id: 97a0b2732f4dc443b8e1676e68b33b1b53ddf4fb
This commit is contained in:
Lynix
2013-03-15 03:09:58 +01:00
parent 4ee6ca05ed
commit 6c2fb1eb89
29 changed files with 344 additions and 299 deletions

View File

@@ -68,7 +68,7 @@ bool NzResource::IsPersistent() const
return m_resourcePersistent;
}
void NzResource::RemoveResourceListener(NzResourceListener* listener) const
bool NzResource::RemoveResourceListener(NzResourceListener* listener) const
{
NazaraMutexLock(m_mutex);
@@ -82,7 +82,7 @@ void NzResource::RemoveResourceListener(NzResourceListener* listener) const
if (m_resourceReferenceCount == 0)
{
NazaraError("Impossible to remove reference (Ref. counter is already 0)");
return;
return false;
}
#endif
@@ -90,14 +90,18 @@ void NzResource::RemoveResourceListener(NzResourceListener* listener) const
{
NazaraMutexUnlock(m_mutex);
delete this;
return true; // On vient d'être supprimé
}
else
{
NazaraMutexUnlock(m_mutex);
return false;
}
}
void NzResource::RemoveResourceReference() const
bool NzResource::RemoveResourceReference() const
{
NazaraMutexLock(m_mutex);
@@ -105,7 +109,7 @@ void NzResource::RemoveResourceReference() const
if (m_resourceReferenceCount == 0)
{
NazaraError("Impossible to remove reference (Ref. counter is already 0)");
return;
return false;
}
#endif
@@ -113,10 +117,14 @@ void NzResource::RemoveResourceReference() const
{
NazaraMutexUnlock(m_mutex);
delete this;
return true;
}
else
{
NazaraMutexUnlock(m_mutex);
return false;
}
}