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)
diff --git a/src/video/uikit/SDL_uikitwindow.m b/src/video/uikit/SDL_uikitwindow.m
index d2a465b..0b9c511 100644
--- a/src/video/uikit/SDL_uikitwindow.m
+++ b/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