aboutsummaryrefslogtreecommitdiff
path: root/engines/director/score.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2016-07-02 21:17:06 +0200
committerEugene Sandulenko2016-08-03 23:40:36 +0200
commit36d7addda93a23f1a31ba4c308c77d6d6fa98e8f (patch)
tree12d3e7d8d501fcbec793a7fde9f51f016a0f4ce0 /engines/director/score.cpp
parent4b9b1f3c2dfdba8e6705195832c69b2952d47f9c (diff)
downloadscummvm-rg350-36d7addda93a23f1a31ba4c308c77d6d6fa98e8f.tar.gz
scummvm-rg350-36d7addda93a23f1a31ba4c308c77d6d6fa98e8f.tar.bz2
scummvm-rg350-36d7addda93a23f1a31ba4c308c77d6d6fa98e8f.zip
DIRECTOR: Fix another crash on exit
Diffstat (limited to 'engines/director/score.cpp')
-rw-r--r--engines/director/score.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index ea0616a7fe..cfce7a4b6e 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -54,6 +54,7 @@ Score::Score(DirectorEngine *vm) {
_soundManager = _vm->getSoundManager();
_lingo->processEvent(kEventPrepareMovie, 0);
_movieScriptCount = 0;
+ _labels = NULL;
if (_movieArchive->hasResource(MKTAG('M','C','N','M'), 0)) {
_macName = _movieArchive->getName(MKTAG('M','C','N','M'), 0).c_str();
@@ -122,13 +123,17 @@ void Score::loadArchive() {
}
Score::~Score() {
- _surface->free();
- _trailSurface->free();
+ if (_surface)
+ _surface->free();
+
+ if (_trailSurface)
+ _trailSurface->free();
delete _surface;
delete _trailSurface;
- _movieArchive->close();
+ if (_movieArchive)
+ _movieArchive->close();
delete _surface;
delete _trailSurface;
@@ -136,12 +141,7 @@ Score::~Score() {
delete _font;
delete _movieArchive;
- delete[] _labels;
- delete[] &_frames;
- delete[] &_casts;
- delete[] &_castsInfo;
- delete[] &_actions;
- delete[] &_fontMap;
+ delete _labels;
}
void Score::loadPalette(Common::SeekableSubReadStreamEndian &stream) {