diff --git a/libraries/zmusic/zmusic/zmusic.cpp b/libraries/zmusic/zmusic/zmusic.cpp index 6943517b8..50eb78163 100644 --- a/libraries/zmusic/zmusic/zmusic.cpp +++ b/libraries/zmusic/zmusic/zmusic.cpp @@ -401,7 +401,6 @@ SoundStreamInfo ZMusic_GetStreamInfo(MusInfo *song) void ZMusic_Close(MusInfo *song) { if (!song) return; - std::lock_guard lock(song->CritSec); delete song; } diff --git a/src/sound/s_music.cpp b/src/sound/s_music.cpp index a6a06f823..b1fee6676 100644 --- a/src/sound/s_music.cpp +++ b/src/sound/s_music.cpp @@ -626,8 +626,9 @@ void S_StopMusic (bool force) S_ResumeMusic(); S_StopStream(); ZMusic_Stop(mus_playing.handle); - ZMusic_Close(mus_playing.handle); + auto h = mus_playing.handle; mus_playing.handle = nullptr; + ZMusic_Close(h); } mus_playing.LastSong = std::move(mus_playing.name); } @@ -637,8 +638,9 @@ void S_StopMusic (bool force) //Printf("Unable to stop %s: %s\n", mus_playing.name.GetChars(), err.what()); if (mus_playing.handle != nullptr) { - ZMusic_Close(mus_playing.handle); + auto h = mus_playing.handle; mus_playing.handle = nullptr; + ZMusic_Close(h); } mus_playing.name = ""; }