From a8546023445dd1d060a9b000f82624a9074a7907 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sun, 2 Apr 2017 13:32:25 -0300 Subject: [PATCH] Fix a crash when a Source stops playing. --HG-- branch : minor --- src/modules/audio/openal/Pool.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/audio/openal/Pool.cpp b/src/modules/audio/openal/Pool.cpp index 05cd71711..7607a6393 100644 --- a/src/modules/audio/openal/Pool.cpp +++ b/src/modules/audio/openal/Pool.cpp @@ -103,9 +103,16 @@ void Pool::update() { thread::Lock lock(mutex); + std::vector torelease; + for (const auto &i : playing) + { if (!i.first->update()) - releaseSource(i.first); + torelease.push_back(i.first); + } + + for (Source *s : torelease) + releaseSource(s); } int Pool::getSourceCount() const