From: <av...@us...> - 2012-02-26 21:05:52
|
Revision: 3778 http://sc2.svn.sourceforge.net/sc2/?rev=3778&view=rev Author: avolkov Date: 2012-02-26 21:05:46 +0000 (Sun, 26 Feb 2012) Log Message: ----------- Make init_RACE()/uninit_RACE() calls symmetric; takes care of memory leaks from bug #1149; thanks to Louis Delacroix Modified Paths: -------------- trunk/sc2/src/uqm/init.c trunk/sc2/src/uqm/loadship.c trunk/sc2/src/uqm/tactrans.c Modified: trunk/sc2/src/uqm/init.c =================================================================== --- trunk/sc2/src/uqm/init.c 2012-02-26 20:32:22 UTC (rev 3777) +++ trunk/sc2/src/uqm/init.c 2012-02-26 21:05:46 UTC (rev 3778) @@ -311,9 +311,6 @@ crew_retrieved; } - if (StarShipPtr->RaceDescPtr->uninit_func != NULL) - (*StarShipPtr->RaceDescPtr->uninit_func) ( - StarShipPtr->RaceDescPtr); /* Record crew left after battle */ StarShipPtr->crew_level = StarShipPtr->RaceDescPtr->ship_info.crew_level; Modified: trunk/sc2/src/uqm/loadship.c =================================================================== --- trunk/sc2/src/uqm/loadship.c 2012-02-26 20:32:22 UTC (rev 3777) +++ trunk/sc2/src/uqm/loadship.c 2012-02-26 21:05:46 UTC (rev 3778) @@ -170,6 +170,9 @@ free_ship (RACE_DESC *raceDescPtr, BOOLEAN FreeIconData, BOOLEAN FreeBattleData) { + if (raceDescPtr->uninit_func != NULL) + (*raceDescPtr->uninit_func) (raceDescPtr); + if (FreeBattleData) { DATA_STUFF *shipData = &raceDescPtr->ship_data; Modified: trunk/sc2/src/uqm/tactrans.c =================================================================== --- trunk/sc2/src/uqm/tactrans.c 2012-02-26 20:32:22 UTC (rev 3777) +++ trunk/sc2/src/uqm/tactrans.c 2012-02-26 21:05:46 UTC (rev 3778) @@ -473,9 +473,6 @@ SetElementStarShip (DeadShipPtr, 0); RestartMusic = OpponentAlive (DeadStarShipPtr); - if (DeadStarShipPtr->RaceDescPtr->uninit_func != NULL) - (*DeadStarShipPtr->RaceDescPtr->uninit_func) ( - DeadStarShipPtr->RaceDescPtr); free_ship (DeadStarShipPtr->RaceDescPtr, TRUE, TRUE); DeadStarShipPtr->RaceDescPtr = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |