From 62c6ee2c558eb33813dc41326f4f14ce046c477a Mon Sep 17 00:00:00 2001 From: Daniel Stokes Date: Thu, 20 Jun 2013 06:17:28 +0000 Subject: [PATCH] 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. --- source/gameengine/Converter/KX_BlenderSceneConverter.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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 >::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 >::iterator itmat = m_materials.begin(); @@ -185,6 +187,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter() delete (*itmat).second; itmat++; } + m_materials.clear(); vector >::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();