From ca9e886b9c94469d8e311b78960de0c434d63261 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 24 Feb 2004 06:53:22 +0000 Subject: [PATCH] Quartz fix: ut2004 makes a 2D window for the splash screen, which sets the screen surface's pixels field. Then we tear down that video mode and create a GL context, and the Quartz target isn't resetting the pixels field to NULL. When you just create a GL window, the structure is memset'd to zero the first time through, so unless you hit ut2004's codepath, you won't see the bug. :) Without this patch, quitting a windowed ut2003/ut2004 game makes the OS dump a warning about a bogus free() to stderr, but it doesn't actually crash. All we need to do is explicitly initialize the current->pixels field. --- src/video/quartz/SDL_QuartzVideo.m | 1 + 1 file changed, 1 insertion(+) diff --git a/src/video/quartz/SDL_QuartzVideo.m b/src/video/quartz/SDL_QuartzVideo.m index caa618c24..db6574032 100644 --- a/src/video/quartz/SDL_QuartzVideo.m +++ b/src/video/quartz/SDL_QuartzVideo.m @@ -828,6 +828,7 @@ other blitting while waiting on the VBL (and hence results in higher framerates) int height, int bpp, Uint32 flags) { current->flags = 0; + current->pixels = NULL; /* Setup full screen video */ if ( flags & SDL_FULLSCREEN ) {