Browse Source

Follow the same pattern for releasing the window data in the UIKit driver

Possible fix for https://github.com/libsdl-org/SDL/issues/7361

(cherry picked from commit ebdb32065163b8ee1ef9c1a0dfa601335b4ad83d)
Sam Lantinga 2 years ago
parent
commit
6ff3e49b6f
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/video/uikit/SDL_uikitwindow.m

+ 4 - 2
src/video/uikit/SDL_uikitwindow.m

@@ -347,7 +347,7 @@ UIKit_DestroyWindow(_THIS, SDL_Window * window)
 {
     @autoreleasepool {
         if (window->driverdata != NULL) {
-            SDL_WindowData *data = (SDL_WindowData *) CFBridgingRelease(window->driverdata);
+            SDL_WindowData *data = (__bridge SDL_WindowData *)window->driverdata;
             NSArray *views = nil;
 
             [data.viewcontroller stopAnimation];
@@ -366,9 +366,11 @@ UIKit_DestroyWindow(_THIS, SDL_Window * window)
              * SDL window. */
             data.uiwindow.rootViewController = nil;
             data.uiwindow.hidden = YES;
+
+            CFRelease(window->driverdata);
+            window->driverdata = NULL;
         }
     }
-    window->driverdata = NULL;
 }
 
 void