[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57596] trunk/blender/source/gameengine/ Converter/KX_BlenderSceneConverter.cpp: BGE: fix [#35447] LibLoad Meshes and Scenes causes crash of blender

Daniel Stokes kupomail at gmail.com
Thu Jun 20 08:17:28 CEST 2013


Revision: 57596
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57596
Author:   kupoman
Date:     2013-06-20 06:17:28 +0000 (Thu, 20 Jun 2013)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp

Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2013-06-20 03:52:12 UTC (rev 57595)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2013-06-20 06:17:28 UTC (rev 57596)
@@ -170,6 +170,7 @@
 		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 @@
 		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 @@
 		delete (*itmat).second;
 		itmat++;
 	}
+	m_materials.clear();
 
 
 	vector<pair<KX_Scene*,RAS_MeshObject*> >::iterator itm = m_meshobjects.begin();
@@ -192,6 +195,7 @@
 		delete (*itm).second;
 		itm++;
 	}
+	m_meshobjects.clear();
 
 #ifdef WITH_BULLET
 	KX_ClearBulletSharedShapes();




More information about the Bf-blender-cvs mailing list