|
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.
|