[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14540] trunk/blender/source/gameengine: BGE bug: fix a crash at game exit caused by inconsistent controller map after object deletion .

Benoit Bolsee benoit.bolsee at online.be
Thu Apr 24 23:26:50 CEST 2008


Revision: 14540
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14540
Author:   ben2610
Date:     2008-04-24 23:26:39 +0200 (Thu, 24 Apr 2008)

Log Message:
-----------
BGE bug: fix a crash at game exit caused by inconsistent controller map after object deletion.  The bug became apparent since the memory leaks have been fixed.

Modified Paths:
--------------
    trunk/blender/source/gameengine/GameLogic/SCA_LogicManager.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp

Modified: trunk/blender/source/gameengine/GameLogic/SCA_LogicManager.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_LogicManager.cpp	2008-04-24 20:21:33 UTC (rev 14539)
+++ trunk/blender/source/gameengine/GameLogic/SCA_LogicManager.cpp	2008-04-24 21:26:39 UTC (rev 14540)
@@ -174,6 +174,14 @@
 	}
 }
 
+void SCA_LogicManager::RemoveController(SCA_IController* controller)
+{
+	std::map<SCA_ISensor*,controllerlist>::iterator sit;
+	for (sit = m_sensorcontrollermapje.begin();!(sit==m_sensorcontrollermapje.end());++sit)
+	{
+		(*sit).second.remove(controller);
+	}
+}
 
 
 void SCA_LogicManager::RemoveDestroyedActuator(SCA_IActuator* actuator)

Modified: trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2008-04-24 20:21:33 UTC (rev 14539)
+++ trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2008-04-24 21:26:39 UTC (rev 14540)
@@ -754,6 +754,7 @@
 	{
 		(*itc)->UnlinkAllSensors();
 		(*itc)->UnlinkAllActuators();
+		m_logicmgr->RemoveController(*itc);
 	}
 
 	SCA_ActuatorList& actuators = newobj->GetActuators();





More information about the Bf-blender-cvs mailing list