[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