# HG changeset patch # User Ryan C. Gordon # Date 1077605602 0 # Node ID 2651b6b43840651d3629c420f9a5e4bc5b69d4aa # Parent 2687d28166d2d5dd432612f4fdb4f35cb2ca1bac 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. diff -r 2687d28166d2 -r 2651b6b43840 src/video/quartz/SDL_QuartzVideo.m --- a/src/video/quartz/SDL_QuartzVideo.m Mon Feb 23 15:49:28 2004 +0000 +++ b/src/video/quartz/SDL_QuartzVideo.m Tue Feb 24 06:53:22 2004 +0000 @@ -828,6 +828,7 @@ int height, int bpp, Uint32 flags) { current->flags = 0; + current->pixels = NULL; /* Setup full screen video */ if ( flags & SDL_FULLSCREEN ) {