Pārlūkot izejas kodu

mir: Fixed memory leak if system cursor id is unknown.

Philipp Wiesemann 8 gadi atpakaļ
vecāks
revīzija
34747107fe
1 mainītis faili ar 7 papildinājumiem un 7 dzēšanām
  1. 7 7
      src/video/mir/SDL_mirmouse.c

+ 7 - 7
src/video/mir/SDL_mirmouse.c

@@ -139,15 +139,9 @@ static SDL_Cursor*
 MIR_CreateSystemCursor(SDL_SystemCursor id)
 {
     char const* cursor_name = NULL;
-    SDL_Cursor* cursor      = MIR_CreateDefaultCursor();
+    SDL_Cursor* cursor;
     MIR_Cursor* mir_cursor;
 
-    if (!cursor) {
-        return NULL;
-    }
-
-    mir_cursor = (MIR_Cursor*)cursor->driverdata;
-
     switch(id) {
         case SDL_SYSTEM_CURSOR_ARROW:
             cursor_name = MIR_mir_arrow_cursor_name;
@@ -192,6 +186,12 @@ MIR_CreateSystemCursor(SDL_SystemCursor id)
             return NULL;
     }
 
+    cursor = MIR_CreateDefaultCursor();
+    if (!cursor) {
+        return NULL;
+    }
+
+    mir_cursor = (MIR_Cursor*)cursor->driverdata;
     mir_cursor->name = cursor_name;
 
     return cursor;