diff src/video/cocoa/SDL_cocoawindow.m @ 1937:05e88d266921

Fixed Objective-C memory leaks Send an SDL quit event when Command-Q is pressed.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 25 Jul 2006 06:59:14 +0000
parents 83946ee0ff1f
children 7177581dc9fa
line wrap: on
line diff
--- a/src/video/cocoa/SDL_cocoawindow.m	Tue Jul 25 06:22:42 2006 +0000
+++ b/src/video/cocoa/SDL_cocoawindow.m	Tue Jul 25 06:59:14 2006 +0000
@@ -419,6 +419,7 @@
 void
 Cocoa_SetWindowTitle(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
     NSString *string;
 
@@ -426,11 +427,13 @@
     [nswindow setTitle:string];
     [nswindow setMiniwindowTitle:string];
     [string release];
+    [pool release];
 }
 
 void
 Cocoa_SetWindowPosition(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
     NSRect rect;
 
@@ -441,25 +444,30 @@
     ConvertNSRect(&rect);
     rect = [nswindow frameRectForContentRect:rect];
     [nswindow setFrameOrigin:rect.origin];
+    [pool release];
 }
 
 void
 Cocoa_SetWindowSize(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
     NSSize size;
 
     size.width = window->w;
     size.height = window->h;
     [nswindow setContentSize:size];
+    [pool release];
 }
 
 void
 Cocoa_ShowWindow(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
 
     [nswindow makeKeyAndOrderFront:nil];
+    [pool release];
 }
 
 void
@@ -473,25 +481,31 @@
 void
 Cocoa_RaiseWindow(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
 
     [nswindow makeKeyAndOrderFront:nil];
+    [pool release];
 }
 
 void
 Cocoa_MaximizeWindow(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
 
     [nswindow performZoom:nil];
+    [pool release];
 }
 
 void
 Cocoa_MinimizeWindow(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
 
     [nswindow performMiniaturize:nil];
+    [pool release];
 }
 
 void
@@ -516,24 +530,23 @@
 void
 Cocoa_DestroyWindow(_THIS, SDL_Window * window)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
 
     if (data) {
-        NSAutoreleasePool *pool;
 #ifdef SDL_VIDEO_OPENGL
         if (window->flags & SDL_WINDOW_OPENGL) {
             Cocoa_GL_CleanupWindow(_this, window);
         }
 #endif
-        pool = [[NSAutoreleasePool alloc] init];
         [data->listener close];
         [data->listener release];
         if (data->created) {
             [data->window close];
         }
         SDL_free(data);
-        [pool release];
     }
+    [pool release];
 }
 
 SDL_bool