From abc2116c6b7cee32789d08b1cea5bcae81ebd725 Mon Sep 17 00:00:00 2001 From: Cong Date: Sun, 29 Jun 2025 15:09:53 +1000 Subject: [PATCH] Fix crash when playing same music again in Noah #712 --- src/cdogs/music.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cdogs/music.c b/src/cdogs/music.c index e32580fb..e93bf5fc 100644 --- a/src/cdogs/music.c +++ b/src/cdogs/music.c @@ -213,6 +213,8 @@ void MusicPlayChunk(MusicPlayer *mp, const MusicType type, MusicChunk *chunk) { mp->type = MUSIC_SRC_DYNAMIC; mp->u.dynamic = chunk->u.Music; + // Mark music as null so it can be dynamically loaded again + chunk->u.Music = NULL; PlayMusic(mp); } else @@ -343,9 +345,7 @@ void MusicPlayFromChunk( chunk->GetData) { chunk->isMusic = chunk->GetData(chunk, chunk->Data); - CFREE(chunk->Data); - chunk->Data = NULL; - chunk->GetData = NULL; + // Note: don't free the data; we need to reload it after it is freed in MusicStop } MusicPlayChunk(mp, type, chunk); }