wiiu/thread: Add missing NULL checks to mutex code

According to  the changes in d59caffe2c8e80aa9d38574fd17974ec5cf05d2b:
> [...] SDL has the concept of a NULL mutex, so the mutex functions have been changed not to report errors if a mutex hasn't been initialized.
> We do have mutexes that might be accessed when they are NULL, notably in the event system, so this is an important change.
This commit is contained in:
GaryOderNichts 2023-11-08 19:56:46 +01:00 committed by Dave Murphy
parent cd53049e56
commit 7b058bd042
No known key found for this signature in database
GPG Key ID: F7FD5492264BB9D0

View File

@ -34,22 +34,30 @@ SDL_CreateMutex(void)
/* Allocate the structure */
mutex = (OSMutex *) SDL_calloc(1, sizeof(OSMutex));
OSInitMutex(mutex);
if (mutex != NULL) {
OSInitMutex(mutex);
} else {
SDL_OutOfMemory();
}
return (SDL_mutex *)mutex;
}
void
SDL_DestroyMutex(SDL_mutex * mutex)
{
if (mutex) {
if (mutex != NULL) {
SDL_free(mutex);
}
}
/* Lock the mutex */
int
SDL_LockMutex(SDL_mutex * mutex)
SDL_LockMutex(SDL_mutex * mutex) SDL_NO_THREAD_SAFETY_ANALYSIS /* clang doesn't know about NULL mutexes */
{
if (mutex == NULL) {
return 0;
}
OSLockMutex((OSMutex *)mutex);
return 0;
}
@ -57,12 +65,20 @@ SDL_LockMutex(SDL_mutex * mutex)
int
SDL_TryLockMutex(SDL_mutex * mutex)
{
if (mutex == NULL) {
return 0;
}
return OSTryLockMutex((OSMutex *)mutex) ? 0 : SDL_MUTEX_TIMEDOUT;
}
int
SDL_UnlockMutex(SDL_mutex * mutex)
SDL_UnlockMutex(SDL_mutex * mutex) SDL_NO_THREAD_SAFETY_ANALYSIS /* clang doesn't know about NULL mutexes */
{
if (mutex == NULL) {
return 0;
}
OSUnlockMutex((OSMutex *)mutex);
return 0;
}