Răsfoiți Sursa

windowsrawinput: Fix incorrect INVALID_HANDLE_VALUE checks.

CreateEvent/CreateThread return NULL on failure.
William Horvath 3 zile în urmă
părinte
comite
706e7f9043
1 a modificat fișierele cu 10 adăugiri și 16 ștergeri
  1. 10 16
      src/video/windows/SDL_windowsrawinput.c

+ 10 - 16
src/video/windows/SDL_windowsrawinput.c

@@ -46,13 +46,7 @@ typedef struct
     HANDLE thread;
     HANDLE thread;
 } RawInputThreadData;
 } RawInputThreadData;
 
 
-static RawInputThreadData thread_data = {
-    false,
-    0,
-    INVALID_HANDLE_VALUE,
-    INVALID_HANDLE_VALUE,
-    INVALID_HANDLE_VALUE
-};
+static RawInputThreadData thread_data = { 0 };
 
 
 static DWORD WINAPI WIN_RawInputThread(LPVOID param)
 static DWORD WINAPI WIN_RawInputThread(LPVOID param)
 {
 {
@@ -140,22 +134,22 @@ static DWORD WINAPI WIN_RawInputThread(LPVOID param)
 
 
 static void CleanupRawInputThreadData(RawInputThreadData *data)
 static void CleanupRawInputThreadData(RawInputThreadData *data)
 {
 {
-    if (data->thread != INVALID_HANDLE_VALUE) {
+    if (data->thread) {
         data->done = true;
         data->done = true;
         SetEvent(data->signal_event);
         SetEvent(data->signal_event);
         WaitForSingleObject(data->thread, 3000);
         WaitForSingleObject(data->thread, 3000);
         CloseHandle(data->thread);
         CloseHandle(data->thread);
-        data->thread = INVALID_HANDLE_VALUE;
+        data->thread = NULL;
     }
     }
 
 
-    if (data->ready_event != INVALID_HANDLE_VALUE) {
+    if (data->ready_event) {
         CloseHandle(data->ready_event);
         CloseHandle(data->ready_event);
-        data->ready_event = INVALID_HANDLE_VALUE;
+        data->ready_event = NULL;
     }
     }
 
 
-    if (data->signal_event != INVALID_HANDLE_VALUE) {
+    if (data->signal_event) {
         CloseHandle(data->signal_event);
         CloseHandle(data->signal_event);
-        data->signal_event = INVALID_HANDLE_VALUE;
+        data->signal_event = NULL;
     }
     }
 }
 }
 
 
@@ -170,20 +164,20 @@ bool WIN_SetRawInputEnabled(SDL_VideoDevice *_this, Uint32 flags)
 
 
         thread_data.flags = flags;
         thread_data.flags = flags;
         thread_data.ready_event = CreateEvent(NULL, FALSE, FALSE, NULL);
         thread_data.ready_event = CreateEvent(NULL, FALSE, FALSE, NULL);
-        if (thread_data.ready_event == INVALID_HANDLE_VALUE) {
+        if (!thread_data.ready_event) {
             WIN_SetError("CreateEvent");
             WIN_SetError("CreateEvent");
             goto done;
             goto done;
         }
         }
 
 
         thread_data.done = false;
         thread_data.done = false;
         thread_data.signal_event = CreateEvent(NULL, FALSE, FALSE, NULL);
         thread_data.signal_event = CreateEvent(NULL, FALSE, FALSE, NULL);
-        if (thread_data.signal_event == INVALID_HANDLE_VALUE) {
+        if (!thread_data.signal_event) {
             WIN_SetError("CreateEvent");
             WIN_SetError("CreateEvent");
             goto done;
             goto done;
         }
         }
 
 
         thread_data.thread = CreateThread(NULL, 0, WIN_RawInputThread, &thread_data, 0, NULL);
         thread_data.thread = CreateThread(NULL, 0, WIN_RawInputThread, &thread_data, 0, NULL);
-        if (thread_data.thread == INVALID_HANDLE_VALUE) {
+        if (!thread_data.thread) {
             WIN_SetError("CreateThread");
             WIN_SetError("CreateThread");
             goto done;
             goto done;
         }
         }