From d77532716ff9e471f5c160a63fb618f0f1fe11bf Mon Sep 17 00:00:00 2001 From: Francesco Abbate Date: Mon, 18 Jan 2021 09:45:45 +0100 Subject: [PATCH] Fix error with wake-up mutex when threads are disabled --- src/video/cocoa/SDL_cocoavideo.m | 9 +++------ src/video/windows/SDL_windowsvideo.c | 10 +++------- src/video/x11/SDL_x11video.c | 9 +++------ 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/video/cocoa/SDL_cocoavideo.m b/src/video/cocoa/SDL_cocoavideo.m index c1dbac1fb..0dfafb029 100644 --- a/src/video/cocoa/SDL_cocoavideo.m +++ b/src/video/cocoa/SDL_cocoavideo.m @@ -45,7 +45,9 @@ Cocoa_Available(void) static void Cocoa_DeleteDevice(SDL_VideoDevice * device) { - SDL_DestroyMutex(device->wakeup_lock); + if (device->wakeup_lock) { + SDL_DestroyMutex(device->wakeup_lock); + } SDL_free(device->driverdata); SDL_free(device); } @@ -72,11 +74,6 @@ Cocoa_CreateDevice(int devindex) } device->driverdata = data; device->wakeup_lock = SDL_CreateMutex(); - if (!device->wakeup_lock) { - SDL_OutOfMemory(); - SDL_free(device); - return (0); - } /* Set the function pointers */ device->VideoInit = Cocoa_VideoInit; diff --git a/src/video/windows/SDL_windowsvideo.c b/src/video/windows/SDL_windowsvideo.c index 85642bb35..888789c88 100644 --- a/src/video/windows/SDL_windowsvideo.c +++ b/src/video/windows/SDL_windowsvideo.c @@ -93,8 +93,9 @@ WIN_DeleteDevice(SDL_VideoDevice * device) if (data->shcoreDLL) { SDL_UnloadObject(data->shcoreDLL); } - - SDL_DestroyMutex(device->wakeup_lock); + if (device->wakeup_lock) { + SDL_DestroyMutex(device->wakeup_lock); + } SDL_free(device->driverdata); SDL_free(device); } @@ -121,11 +122,6 @@ WIN_CreateDevice(int devindex) } device->driverdata = data; device->wakeup_lock = SDL_CreateMutex(); - if (!device->wakeup_lock) { - SDL_OutOfMemory(); - SDL_free(device); - return (0); - } data->userDLL = SDL_LoadObject("USER32.DLL"); if (data->userDLL) { diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c index 8806c1223..449ed713a 100644 --- a/src/video/x11/SDL_x11video.c +++ b/src/video/x11/SDL_x11video.c @@ -117,7 +117,9 @@ X11_DeleteDevice(SDL_VideoDevice * device) X11_XCloseDisplay(data->display); } SDL_free(data->windowlist); - SDL_DestroyMutex(device->wakeup_lock); + if (device->wakeup_lock) { + SDL_DestroyMutex(device->wakeup_lock); + } SDL_free(device->driverdata); SDL_free(device); @@ -183,11 +185,6 @@ X11_CreateDevice(int devindex) } device->driverdata = data; device->wakeup_lock = SDL_CreateMutex(); - if (!device->wakeup_lock) { - SDL_free(device); - SDL_OutOfMemory(); - return (0); - } data->global_mouse_changed = SDL_TRUE; -- 2.27.0