fix infinite recursion when using SDL_mixer v2.6

Mix_HaltChannel -> soundFinishedCallback -> Mix_FreeChunk -> soundFinishedCallback -> ...
This commit is contained in:
Andrey Filipenkov
2022-08-03 12:08:41 +03:00
committed by Andrii Danylchenko
parent 0429ff61b0
commit f2187f6767
+6 -5
View File
@@ -257,13 +257,14 @@ void CSoundHandler::soundFinishedCallback(int channel)
{
std::map<int, std::function<void()> >::iterator iter;
iter = callbacks.find(channel);
if (iter == callbacks.end())
return;
assert(iter != callbacks.end());
if (iter->second)
iter->second();
auto callback = std::move(iter->second);
callbacks.erase(iter);
if (callback)
callback();
}
int CSoundHandler::ambientGetRange() const