Fix memory leaks in the new model code.
This was SVN commit r3063.
This commit is contained in:
parent
f2b88d7792
commit
be44dc842e
@ -63,6 +63,7 @@ void CModel::ReleaseData()
|
||||
delete[] m_BoneMatrices;
|
||||
delete[] m_InvTranspBoneMatrices;
|
||||
for (size_t i=0;i<m_Props.size();i++) {
|
||||
m_Props[i].m_Model->m_Parent = 0;
|
||||
delete m_Props[i].m_Model;
|
||||
}
|
||||
m_Props.clear();
|
||||
@ -433,6 +434,7 @@ void CModel::RemoveProp(SPropPoint* point)
|
||||
for (Iter iter=m_Props.begin();iter!=m_Props.end();++iter) {
|
||||
const Prop& prop=*iter;
|
||||
if (prop.m_Point==point) {
|
||||
prop.m_Model->m_Parent = 0;
|
||||
delete prop.m_Model;
|
||||
m_Props.erase(iter);
|
||||
return;
|
||||
|
@ -246,11 +246,11 @@ struct BMRModelDefTracker : public CModelDefRPrivate
|
||||
: m_ModelDef(mdef), m_Next(0), m_Slots(0) { }
|
||||
|
||||
/// Back-link to the CModelDef object
|
||||
CModelDefPtr m_ModelDef;
|
||||
boost::weak_ptr<CModelDef> m_ModelDef;
|
||||
|
||||
/// Pointer to the next ModelDefTracker that has submitted models.
|
||||
BMRModelDefTracker* m_Next;
|
||||
|
||||
|
||||
/// Number of slots used in m_ModelSlots
|
||||
uint m_Slots;
|
||||
|
||||
@ -431,7 +431,7 @@ void BatchModelRenderer::RenderAllModels(u32 flags)
|
||||
|
||||
for(BMRModelDefTracker* mdeftracker = m->submissions; mdeftracker; mdeftracker = mdeftracker->m_Next)
|
||||
{
|
||||
PrepareModelDef(mdeftracker->m_ModelDef);
|
||||
PrepareModelDef(mdeftracker->m_ModelDef.lock());
|
||||
|
||||
for(uint idx = 0; idx < mdeftracker->m_Slots; ++idx)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user