aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/sound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge/sound.cpp')
-rw-r--r--engines/cge/sound.cpp6
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 {