From 04cef944e973ed190d3ba822a9886fc026efd948 Mon Sep 17 00:00:00 2001 From: MarkT Date: Sun, 30 May 2004 01:57:26 +0000 Subject: [PATCH] Fixing leaks. This was SVN commit r325. --- source/simulation/BaseEntity.cpp | 10 +++++++++- source/simulation/BaseEntity.h | 1 + source/simulation/BaseEntityCollection.cpp | 11 ----------- source/simulation/EntityManager.cpp | 5 ++++- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/source/simulation/BaseEntity.cpp b/source/simulation/BaseEntity.cpp index cf31a5d443..d24f878c61 100755 --- a/source/simulation/BaseEntity.cpp +++ b/source/simulation/BaseEntity.cpp @@ -15,6 +15,14 @@ // automatically use namespace .. XERCES_CPP_NAMESPACE_USE +CBaseEntity::~CBaseEntity() +{ + if( m_bound_box ) + delete( m_bound_box ); + if( m_bound_circle ) + delete( m_bound_circle ); +} + bool CBaseEntity::loadXML( CStr filename ) { bool parseOK = false; @@ -126,7 +134,7 @@ bool CBaseEntity::loadXML( CStr filename ) } } - + delete errorHandler; delete parser; } XMLPlatformUtils::Terminate(); diff --git a/source/simulation/BaseEntity.h b/source/simulation/BaseEntity.h index dc10c0c691..1c03f8dc89 100755 --- a/source/simulation/BaseEntity.h +++ b/source/simulation/BaseEntity.h @@ -28,6 +28,7 @@ class CBaseEntity { public: CBaseEntity() { m_bound_circle = NULL; m_bound_box = NULL; } + ~CBaseEntity(); // Load from XML bool loadXML( CStr filename ); diff --git a/source/simulation/BaseEntityCollection.cpp b/source/simulation/BaseEntityCollection.cpp index 626b03a321..de9974e855 100755 --- a/source/simulation/BaseEntityCollection.cpp +++ b/source/simulation/BaseEntityCollection.cpp @@ -31,17 +31,6 @@ void CBaseEntityCollection::loadTemplates() CBaseEntity* dude = getTemplate( "Prometheus Dude" ); dude->m_speed *= 10.0f; -/* - - // Nasty evil wicked hardcoding. - CBaseEntity dude; - dude.m_name = CStr( "Prometheus Dude" ); - dude.m_actorObject = g_ObjMan.FindObject( "The Dude" ); - dude.m_actorObject->m_Model->GetAnimation()->m_FrameTime /= 3.0f; - dude.speed = 0.3f; - - addTemplate( dude ); -*/ } void CBaseEntityCollection::addTemplate( CBaseEntity& temp ) diff --git a/source/simulation/EntityManager.cpp b/source/simulation/EntityManager.cpp index e87307c373..4864275d8e 100755 --- a/source/simulation/EntityManager.cpp +++ b/source/simulation/EntityManager.cpp @@ -9,8 +9,11 @@ CEntityManager::CEntityManager() } CEntityManager::~CEntityManager() -{ +{ m_extant = false; + for( int i = 0; i < MAX_HANDLES; i++ ) + if( m_entities[i].m_refcount ) + delete( m_entities[i].m_entity ); } HEntity CEntityManager::create( CBaseEntity* base, CVector3D position, float orientation )