Memory leak fix

This was SVN commit r565.
This commit is contained in:
Ykkrosh 2004-06-19 20:54:36 +00:00
parent f9382306c8
commit 561299f899
5 changed files with 15 additions and 4 deletions

View File

@ -883,6 +883,7 @@ void CGUI::LoadXMLFile(const string &Filename)
/// g_console.submit("echo GUI Tree Creation Reports %d errors", m_Errors);
}
delete parser->getErrorHandler();
delete parser;
}
XMLPlatformUtils::Terminate();

View File

@ -56,10 +56,7 @@ IGUIObject::~IGUIObject()
{
map<CStr, SGUISetting>::iterator it;
for (it = m_Settings.begin(); it != m_Settings.end(); ++it)
{
if (!it->second.m_pSetting)
delete it->second.m_pSetting;
}
delete it->second.m_pSetting;
}
//-------------------------------------------------------------------

View File

@ -15,6 +15,14 @@
// shared list of all free batch objects
std::vector<CVertexBuffer::Batch*> CVertexBuffer::m_FreeBatches;
///////////////////////////////////////////////////////////////////////////////
// Call at shutdown to free memory
void CVertexBuffer::Shutdown()
{
for(std::vector<Batch*>::iterator iter=m_FreeBatches.begin();iter!=m_FreeBatches.end();++iter)
delete *iter;
}
///////////////////////////////////////////////////////////////////////////////
// CVertexBuffer constructor
CVertexBuffer::CVertexBuffer(size_t vertexSize,bool dynamic)

View File

@ -66,6 +66,9 @@ public:
// return this VBs batch list
const std::vector<Batch*>& GetBatches() const { return m_Batches; }
// free memory
static void CVertexBuffer::Shutdown();
protected:
friend class CVertexBufferManager; // allow allocate only via CVertexBufferManager

View File

@ -19,6 +19,8 @@ CVertexBufferManager::~CVertexBufferManager()
typedef std::list<CVertexBuffer*>::iterator Iter;
for (Iter iter=m_Buffers.begin();iter!=m_Buffers.end();++iter)
delete *iter;
CVertexBuffer::Shutdown();
}