From 6523a32334491532a7fe6f9efd96585d4d1188ce Mon Sep 17 00:00:00 2001 From: D G Turner Date: Wed, 28 Mar 2012 01:11:41 +0100 Subject: CGE: Close memory leak in sound Fx caching.. --- engines/cge/sound.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'engines/cge') 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 { -- cgit v1.2.3