diff options
Diffstat (limited to 'plugins/ao')
-rw-r--r-- | plugins/ao/eng_psf/eng_spu.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/ao/eng_psf/eng_spu.c b/plugins/ao/eng_psf/eng_spu.c index dbda70ac..966fe870 100644 --- a/plugins/ao/eng_psf/eng_spu.c +++ b/plugins/ao/eng_psf/eng_spu.c @@ -263,7 +263,14 @@ int32 spu_gen(void *handle, int16 *buffer, uint32 samples) int32 spu_stop(void *handle) { - free (handle); + spu_synth_t *s = handle; + if (s) { + if (s->mips_cpu) { + SPUclose(s->mips_cpu); + free (s->mips_cpu); + } + free (s); + } return AO_SUCCESS; } |