On Mon, Feb 25, 2008 at 10:43:10PM +0200, Yavor Doganov wrote: > Could you please rebuild gnustep-base with the attached upstream patch > and see if you can reproduce the bug?
Sorry, I messed this up. Here's the patch.
2008-02-25 Fred Kiefer <[EMAIL PROTECTED]> * Source/x11/XGServer.m (-_screenContextForScreen:): Remove wrong local variable declaration and reorder code. * Source/x11/XGServer.m (-_initXContext:): Don't create default screen. Index: Source/x11/XGServer.m =================================================================== --- Source/x11/XGServer.m (revision 26069) +++ Source/x11/XGServer.m (working copy) @@ -374,7 +374,6 @@ { int screen_number, display_number; NSString *display_name; - XGScreenContext *screen; display_name = [server_info objectForKey: GSDisplayName]; if (display_name == nil) @@ -437,9 +436,6 @@ screenList = NSCreateMapTable(NSIntMapKeyCallBacks, NSObjectMapValueCallBacks, 20); - screen = [[XGScreenContext alloc] initForDisplay: dpy screen: screen_number]; - AUTORELEASE(screen); - NSMapInsert(screenList, (void *)(uintptr_t)screen_number, (void *)screen); defScreen = screen_number; XSetErrorHandler(XGErrorHandler); @@ -504,12 +500,12 @@ screen = NSMapGet(screenList, (void *)(uintptr_t)screen_number); if (screen == NULL) { - XGScreenContext *screen; screen = [[XGScreenContext alloc] initForDisplay: dpy screen: screen_number]; - AUTORELEASE(screen); NSMapInsert(screenList, (void *)(uintptr_t)screen_number, (void *)screen); + RELEASE(screen); } + return screen; }