diff options
| author | athrxx | 2011-06-13 03:00:03 +0200 | 
|---|---|---|
| committer | athrxx | 2011-06-13 03:02:59 +0200 | 
| commit | afb1b3d8d38c32f4a50c1033cec00cc859917463 (patch) | |
| tree | 80b72277a2cd8f250001a15ced9032786b75f391 | |
| parent | 4c70d399330503e39841d6047435e26da2f189f2 (diff) | |
| download | scummvm-rg350-afb1b3d8d38c32f4a50c1033cec00cc859917463.tar.gz scummvm-rg350-afb1b3d8d38c32f4a50c1033cec00cc859917463.tar.bz2 scummvm-rg350-afb1b3d8d38c32f4a50c1033cec00cc859917463.zip | |
SCUMM: fix engine destructor
(This is relevant for cases where the engine errors out early, before certain arrays get initialized).
| -rw-r--r-- | engines/scumm/scumm.cpp | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp index 36caff452d..dd26e23b4d 100644 --- a/engines/scumm/scumm.cpp +++ b/engines/scumm/scumm.cpp @@ -162,7 +162,7 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)  	_pauseDialog = NULL;  	_versionDialog = NULL;  	_fastMode = 0; -	_actors = NULL; +	_actors = _sortedActors = NULL;  	_arraySlot = NULL;  	_inventory = NULL;  	_newNames = NULL; @@ -584,9 +584,12 @@ ScummEngine::~ScummEngine() {  	_mixer->stopAll(); -	for (int i = 0; i < _numActors; ++i) -		delete _actors[i]; -	delete[] _actors; +	if (_actors) { +		for (int i = 0; i < _numActors; ++i) +			delete _actors[i]; +		delete[] _actors; +	} +	  	delete[] _sortedActors;  	delete[] _2byteFontPtr; @@ -1361,6 +1364,7 @@ void ScummEngine::resetScumm() {  #ifdef USE_RGB_COLOR  	if (_game.features & GF_16BIT_COLOR  #ifndef DISABLE_TOWNS_DUAL_LAYER_MODE +  		|| _game.platform == Common::kPlatformFMTowns  #endif  		) | 
