diff options
Diffstat (limited to 'fix_audio_cache.patch')
-rw-r--r-- | fix_audio_cache.patch | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/fix_audio_cache.patch b/fix_audio_cache.patch deleted file mode 100644 index b744d119a5e8..000000000000 --- a/fix_audio_cache.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 1c6999b33a1b66b46143266ba9f842a32e837484 Mon Sep 17 00:00:00 2001 -From: Myaamori <myaamori1993@gmail.com> -Date: Thu, 21 May 2020 05:11:15 +0100 -Subject: [PATCH] Fix mutation while iterating corrupting linked list in - block_cache.h - ---- - src/block_cache.h | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/block_cache.h b/src/block_cache.h -index f2ebfa261..4025dac11 100644 ---- a/src/block_cache.h -+++ b/src/block_cache.h -@@ -91,7 +91,6 @@ class DataBlockCache { - size -= (ba.size() - std::count(ba.begin(), ba.end(), nullptr)) * factory.GetBlockSize(); - - ba.clear(); -- age.erase(mb.position); - } - - public: -@@ -150,8 +149,16 @@ - } - - // Remove old entries until we're under the max size -- for (auto it = age.rbegin(); size > max_size && it != age.rend(); it++) -- KillMacroBlock(**it); -+ auto it = age.end(); -+ while (size > max_size) { -+ if (it == age.begin()) -+ break; -+ it--; -+ KillMacroBlock(**it); -+ } -+ -+ while (it != age.end()) -+ it = age.erase(it); - } - - /// @brief Obtain a data block from the cache
\ No newline at end of file |