From da07ce3f75950383eb2142e100dd63bf44ddd170 Mon Sep 17 00:00:00 2001 From: Doyle Thai Date: Thu, 1 Sep 2016 02:53:17 +1000 Subject: [PATCH] Fix memory leak not freeing stb_decode ptr --- src/Audio.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Audio.c b/src/Audio.c index 334e155..dbb8429 100644 --- a/src/Audio.c +++ b/src/Audio.c @@ -266,6 +266,7 @@ INTERNAL i32 initRendererForPlayback(MemoryArena *arena, return result; } +#include const i32 audio_playVorbis(MemoryArena *arena, AudioManager *audioManager, AudioRenderer *audioRenderer, AudioVorbis *vorbis, i32 numPlays) @@ -281,6 +282,10 @@ const i32 audio_playVorbis(MemoryArena *arena, AudioManager *audioManager, soundSamples, numSamples * vorbis->info.channels * sizeof(i16), vorbis->info.sample_rate); + // NOTE(doyle): stb_vorbis specific implementation requires free() + // TODO(doyle): Object pool this and use our malloc to avoid dependency in Audio.c + free(soundSamples); + audioRenderer->audio = vorbis; audioRenderer->isStreaming = FALSE; audioRenderer->state = audiostate_playing;