thread: fix inconsistent return values

- SDL_CreateMutex returns NULL when the creation fails (ngage)
- SDL_SemValue returns 0 when the semaphore is NULL (n3ds)

(cherry picked from commit 6875e1c262ae968a4fb52b367cf6912d9c76d4c9)
This commit is contained in:
pionere 2022-11-29 11:18:30 +01:00 committed by Ryan C. Gordon
parent 89e9f7b42b
commit fcd7d658dc
No known key found for this signature in database
GPG key ID: FA148B892AB48044
2 changed files with 3 additions and 1 deletions

View file

@ -114,7 +114,8 @@ Uint32
SDL_SemValue(SDL_sem *sem) SDL_SemValue(SDL_sem *sem)
{ {
if (sem == NULL) { if (sem == NULL) {
return SDL_InvalidParamError("sem"); SDL_InvalidParamError("sem");
return 0;
} }
return sem->semaphore.current_count; return sem->semaphore.current_count;
} }

View file

@ -48,6 +48,7 @@ SDL_CreateMutex(void)
TInt status = CreateUnique(NewMutex, &rmutex, NULL); TInt status = CreateUnique(NewMutex, &rmutex, NULL);
if (status != KErrNone) { if (status != KErrNone) {
SDL_SetError("Couldn't create mutex."); SDL_SetError("Couldn't create mutex.");
return NULL;
} }
SDL_mutex* mutex = new /*(ELeave)*/ SDL_mutex; SDL_mutex* mutex = new /*(ELeave)*/ SDL_mutex;
mutex->handle = rmutex.Handle(); mutex->handle = rmutex.Handle();