Memory leak fix
This was SVN commit r568.
This commit is contained in:
parent
c01eb01dfb
commit
eed80d019a
@ -30,6 +30,16 @@ CModelDef::~CModelDef()
|
||||
delete[] m_PropPoints;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Call at shutdown to free memory
|
||||
void CModelDef::Shutdown()
|
||||
{
|
||||
for (std::vector<CModelDef*>::iterator iter = m_LoadedModelDefs.begin(); iter != m_LoadedModelDefs.end(); ++iter)
|
||||
delete *iter;
|
||||
}
|
||||
// The list of allocated models which are to be freed
|
||||
std::vector<CModelDef*> CModelDef::m_LoadedModelDefs;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// FindPropPoint: find and return pointer to prop point matching given name;
|
||||
@ -97,6 +107,7 @@ CModelDef* CModelDef::Load(const char* filename)
|
||||
delete mdef;
|
||||
throw CFileUnpacker::CFileEOFError();
|
||||
}
|
||||
m_LoadedModelDefs.push_back(mdef);
|
||||
|
||||
return mdef;
|
||||
}
|
||||
|
@ -84,6 +84,9 @@ public:
|
||||
// destructor
|
||||
virtual ~CModelDef();
|
||||
|
||||
// shutdown memory-freer
|
||||
static void Shutdown();
|
||||
|
||||
// model I/O functions
|
||||
static CModelDef* Load(const char* filename);
|
||||
static void Save(const char* filename,const CModelDef* mdef);
|
||||
@ -118,6 +121,9 @@ public:
|
||||
// prop point data
|
||||
u32 m_NumPropPoints;
|
||||
SPropPoint* m_PropPoints;
|
||||
|
||||
// all loaded models, to be freed on shutdown
|
||||
static std::vector<CModelDef*> m_LoadedModelDefs;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -17,6 +17,8 @@ CObjectManager::~CObjectManager()
|
||||
delete m_ObjectTypes[i].m_Objects[j];
|
||||
}
|
||||
}
|
||||
|
||||
CModelDef::Shutdown();
|
||||
}
|
||||
|
||||
CObjectEntry* CObjectManager::FindObject(const char* objectname)
|
||||
|
Loading…
Reference in New Issue
Block a user