From db16f9309ecf6ae1b10f4fea1598b427879ceef2 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Tue, 20 Nov 2012 22:57:14 -0800 Subject: [PATCH] Don't crash if something goes wrong with mutexes. Probably can't happen but being defensive is good. --- Core/HLE/sceKernelMutex.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/HLE/sceKernelMutex.cpp b/Core/HLE/sceKernelMutex.cpp index 52f08c554d..f8c8375992 100644 --- a/Core/HLE/sceKernelMutex.cpp +++ b/Core/HLE/sceKernelMutex.cpp @@ -121,6 +121,7 @@ void __KernelMutexInit() void __KernelMutexAcquireLock(Mutex *mutex, int count, SceUID thread) { + _dbg_assert_msg_(HLE, mutexHeldLocks.find(threadID) == mutexHeldLocks.end(), "Thread %d wasn't removed from mutexHeldLocks properly."); mutexHeldLocks.insert(std::make_pair(thread, mutex->GetUID())); mutex->nm.lockLevel = count; @@ -328,7 +329,8 @@ void __KernelMutexThreadEnd(SceUID threadID) SceUID mutexID = (*iter).second; Mutex *mutex = kernelObjects.Get(mutexID, error); - __KernelUnlockMutex(mutex, error); + if (mutex) + __KernelUnlockMutex(mutex, error); } }