Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stokes <kupomail@gmail.com>2013-06-20 10:17:28 +0400
committerDaniel Stokes <kupomail@gmail.com>2013-06-20 10:17:28 +0400
commit62c6ee2c558eb33813dc41326f4f14ce046c477a (patch)
treec8647b136d0f2a0767a50c4cf58ad8a1ae513f80 /source/gameengine/Converter
parent1e64732d5264edef5af455febdf8567fc3472a05 (diff)
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.
Diffstat (limited to 'source/gameengine/Converter')
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 8703a545a4f..19287c1fd62 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -170,6 +170,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
delete (*itw).second;
itw++;
}
+ m_worldinfos.clear();
vector<pair<KX_Scene*,RAS_IPolyMaterial*> >::iterator itp = m_polymaterials.begin();
while (itp != m_polymaterials.end()) {
@@ -177,6 +178,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
delete (*itp).second;
itp++;
}
+ m_polymaterials.clear();
// delete after RAS_IPolyMaterial
vector<pair<KX_Scene*,BL_Material *> >::iterator itmat = m_materials.begin();
@@ -185,6 +187,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
delete (*itmat).second;
itmat++;
}
+ m_materials.clear();
vector<pair<KX_Scene*,RAS_MeshObject*> >::iterator itm = m_meshobjects.begin();
@@ -192,6 +195,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
delete (*itm).second;
itm++;
}
+ m_meshobjects.clear();
#ifdef WITH_BULLET
KX_ClearBulletSharedShapes();