# HG changeset patch # User Ryan C. Gordon # Date 1181890651 0 # Node ID 3dc92ff218dd40e701d2b3e85f7781c89d2596ef # Parent a9ad5257f7940b1e497fa21009c682ce85e2d311 Clean up have-initialized resources in some failing edge cases. Maybe fixes Bugzilla #426. diff -r a9ad5257f794 -r 3dc92ff218dd src/video/x11/SDL_x11video.c --- a/src/video/x11/SDL_x11video.c Fri Jun 15 06:49:14 2007 +0000 +++ b/src/video/x11/SDL_x11video.c Fri Jun 15 06:57:31 2007 +0000 @@ -408,7 +408,7 @@ } } - /* Setup the communication with the IM server */ + /* Setup the communication with the IM server */ SDL_IM = NULL; SDL_IC = NULL; @@ -483,6 +483,8 @@ */ GFX_Display = XOpenDisplay(display); if ( GFX_Display == NULL ) { + XCloseDisplay(SDL_Display); + SDL_Display = NULL; SDL_SetError("Couldn't open X11 display"); return(-1); } @@ -508,8 +510,13 @@ #endif /* NO_SHARED_MEMORY */ /* Get the available video modes */ - if(X11_GetVideoModes(this) < 0) + if(X11_GetVideoModes(this) < 0) { + XCloseDisplay(GFX_Display); + GFX_Display = NULL; + XCloseDisplay(SDL_Display); + SDL_Display = NULL; return -1; + } /* Determine the current screen size */ this->info.current_w = DisplayWidth(SDL_Display, SDL_Screen);