diff options
-rw-r--r-- | engines/cge/sound.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/engines/cge/sound.cpp b/engines/cge/sound.cpp index 646689e99e..7f74794474 100644 --- a/engines/cge/sound.cpp +++ b/engines/cge/sound.cpp @@ -148,8 +148,11 @@ void Fx::preload(int ref0) { DataCk *wav = loadWave(&file); if (wav) { Handler *p = &_cache[find(0)]; - if (p >= cacheLim) + if (p >= cacheLim) { + delete wav; break; + } + delete p->_wav; p->_wav = wav; p->_ref = ref; } else { @@ -166,6 +169,7 @@ DataCk *Fx::load(int idx, int ref) { DataCk *wav = loadWave(&file); if (wav) { Handler *p = &_cache[idx]; + delete p->_wav; p->_wav = wav; p->_ref = ref; } else { |