forked from bartvdbraak/blender
BGE: fix [#35447] LibLoad Meshes and Scenes causes crash of blender
KX_BlenderSceneConverter's destructor freed the contents of several std::vectors without removing those contents from the vectors. Later these vectors are iterated through. Making sure the vectors get cleared solves this problem.
This commit is contained in:
parent
1e64732d52
commit
62c6ee2c55
@ -170,6 +170,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
|
|||||||
delete (*itw).second;
|
delete (*itw).second;
|
||||||
itw++;
|
itw++;
|
||||||
}
|
}
|
||||||
|
m_worldinfos.clear();
|
||||||
|
|
||||||
vector<pair<KX_Scene*,RAS_IPolyMaterial*> >::iterator itp = m_polymaterials.begin();
|
vector<pair<KX_Scene*,RAS_IPolyMaterial*> >::iterator itp = m_polymaterials.begin();
|
||||||
while (itp != m_polymaterials.end()) {
|
while (itp != m_polymaterials.end()) {
|
||||||
@ -177,6 +178,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
|
|||||||
delete (*itp).second;
|
delete (*itp).second;
|
||||||
itp++;
|
itp++;
|
||||||
}
|
}
|
||||||
|
m_polymaterials.clear();
|
||||||
|
|
||||||
// delete after RAS_IPolyMaterial
|
// delete after RAS_IPolyMaterial
|
||||||
vector<pair<KX_Scene*,BL_Material *> >::iterator itmat = m_materials.begin();
|
vector<pair<KX_Scene*,BL_Material *> >::iterator itmat = m_materials.begin();
|
||||||
@ -185,6 +187,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
|
|||||||
delete (*itmat).second;
|
delete (*itmat).second;
|
||||||
itmat++;
|
itmat++;
|
||||||
}
|
}
|
||||||
|
m_materials.clear();
|
||||||
|
|
||||||
|
|
||||||
vector<pair<KX_Scene*,RAS_MeshObject*> >::iterator itm = m_meshobjects.begin();
|
vector<pair<KX_Scene*,RAS_MeshObject*> >::iterator itm = m_meshobjects.begin();
|
||||||
@ -192,6 +195,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
|
|||||||
delete (*itm).second;
|
delete (*itm).second;
|
||||||
itm++;
|
itm++;
|
||||||
}
|
}
|
||||||
|
m_meshobjects.clear();
|
||||||
|
|
||||||
#ifdef WITH_BULLET
|
#ifdef WITH_BULLET
|
||||||
KX_ClearBulletSharedShapes();
|
KX_ClearBulletSharedShapes();
|
||||||
|
Loading…
Reference in New Issue
Block a user