Fixed bug #695 SDL-1.2
authorSam Lantinga <slouken@libsdl.org>
Mon, 21 Sep 2009 09:54:33 +0000
branchSDL-1.2
changeset 42190a7481888fd1
parent 4218 50b4ab8f8271
child 4220 cf958451fd8d
Fixed bug #695

Nomad 2009-02-08 10:34:43 PST

The 2nd init is good.
The problem is in "SDL_dibevents.c"
in DIB_CreateWindow()

in SVN:
{
char *windowid = SDL_getenv("SDL_WINDOWID");

SDL_RegisterApp(NULL, 0, 0);

... using of data to which windowid is points

problem:
SDL_RegisterApp() may call SDL_getenv() and windowid will point to some
wrong string

solve:
char *windowid;

SDL_RegisterApp(NULL, 0, 0);

windowid = SDL_getenv("SDL_WINDOWID");
src/video/windib/SDL_dibevents.c
     1.1 --- a/src/video/windib/SDL_dibevents.c	Mon Sep 21 09:47:53 2009 +0000
     1.2 +++ b/src/video/windib/SDL_dibevents.c	Mon Sep 21 09:54:33 2009 +0000
     1.3 @@ -653,10 +653,11 @@
     1.4  
     1.5  int DIB_CreateWindow(_THIS)
     1.6  {
     1.7 -	char *windowid = SDL_getenv("SDL_WINDOWID");
     1.8 +	char *windowid;
     1.9  
    1.10  	SDL_RegisterApp(NULL, 0, 0);
    1.11  
    1.12 +	windowid = SDL_getenv("SDL_WINDOWID");
    1.13  	SDL_windowid = (windowid != NULL);
    1.14  	if ( SDL_windowid ) {
    1.15  #if defined(_WIN32_WCE) && (_WIN32_WCE < 300)