From b571a8ce3928bec1aa154b62a2000eaf8a11890c Mon Sep 17 00:00:00 2001 From: avolkov Date: Sun, 26 Feb 2012 21:05:46 +0000 Subject: [PATCH] Make init_RACE()/uninit_RACE() calls symmetric; takes care of memory leaks from bug #1149; thanks to Louis Delacroix git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3778 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/src/uqm/init.c | 3 --- sc2/src/uqm/loadship.c | 3 +++ sc2/src/uqm/tactrans.c | 3 --- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/sc2/src/uqm/init.c b/sc2/src/uqm/init.c index 0e83a5c51..7831d089e 100644 --- a/sc2/src/uqm/init.c +++ b/sc2/src/uqm/init.c @@ -311,9 +311,6 @@ UninitShips (void) 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; diff --git a/sc2/src/uqm/loadship.c b/sc2/src/uqm/loadship.c index 3e73c1f41..339613415 100644 --- a/sc2/src/uqm/loadship.c +++ b/sc2/src/uqm/loadship.c @@ -170,6 +170,9 @@ void 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; diff --git a/sc2/src/uqm/tactrans.c b/sc2/src/uqm/tactrans.c index 018084e12..4e2b8964c 100644 --- a/sc2/src/uqm/tactrans.c +++ b/sc2/src/uqm/tactrans.c @@ -473,9 +473,6 @@ new_ship (ELEMENT *DeadShipPtr) 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;