From 3de24123e737a0bc4584b3a59db553d74a2dfdf0 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 21 Jun 2003 15:36:19 +0000 Subject: fix some memory leaks svn-id: r8580 --- simon/sound.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'simon/sound.cpp') diff --git a/simon/sound.cpp b/simon/sound.cpp index d38cd3903f..d04a919dc4 100644 --- a/simon/sound.cpp +++ b/simon/sound.cpp @@ -31,7 +31,7 @@ protected: public: BaseSound(SoundMixer *mixer, File *file, uint32 base = 0); BaseSound(SoundMixer *mixer, File *file, uint32 *offsets); - virtual ~BaseSound() { delete _file; } + virtual ~BaseSound(); virtual int playSound(uint sound, PlayingSoundHandle *handle, byte flags = 0) = 0; }; @@ -91,6 +91,11 @@ BaseSound::BaseSound(SoundMixer *mixer, File *file, uint32 *offsets) { _offsets = offsets; } +BaseSound::~BaseSound() { + free(_offsets); + delete _file; +} + #if !defined(__GNUC__) #pragma START_PACK_STRUCTS #endif @@ -322,6 +327,14 @@ SimonSound::SimonSound(const byte game, const GameSpecificSettings *gss, const c } } +SimonSound::~SimonSound() { + delete _voice; + delete _effects; + + free(_filenums); + free(_offsets); +} + void SimonSound::readSfxFile(const char *filename, const char *gameDataPath) { stopAll(); -- cgit v1.2.3