From 350551b37c9d10f81ffaf4eceb16eb104149958c Mon Sep 17 00:00:00 2001 From: hogliux Date: Mon, 26 Mar 2018 14:31:25 +0100 Subject: [PATCH] Ensured that ThreadPool::moveJobToFront can survive a stale job pointer --- modules/juce_core/threads/juce_ThreadPool.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/juce_core/threads/juce_ThreadPool.cpp b/modules/juce_core/threads/juce_ThreadPool.cpp index 2f6dba675d..0b91231f02 100644 --- a/modules/juce_core/threads/juce_ThreadPool.cpp +++ b/modules/juce_core/threads/juce_ThreadPool.cpp @@ -207,13 +207,10 @@ void ThreadPool::moveJobToFront (const ThreadPoolJob* job) noexcept { const ScopedLock sl (lock); - if (! job->isActive) - { - auto index = jobs.indexOf (const_cast (job)); + auto index = jobs.indexOf (const_cast (job)); - if (index > 0) - jobs.move (index, 0); - } + if (index > 0 && ! job->isActive) + jobs.move (index, 0); } bool ThreadPool::waitForJobToFinish (const ThreadPoolJob* const job, const int timeOutMs) const