Fix memory leak when xinerama is enabled (normally hit only once).

SVN revision: 32319
This commit is contained in:
Kim Woelders 2007-11-03 10:28:27 +00:00
parent 45a497b5c3
commit 336498de43
1 changed files with 10 additions and 5 deletions

View File

@ -64,20 +64,25 @@ ScreenInit(void)
n_screens = 0; /* Causes reconfiguration */
#ifdef HAVE_XINERAMA
XineramaScreenInfo *screens = NULL;
int num_screens = 0;
int i;
XineramaScreenInfo *screens;
int i, num_screens;
if (Mode.wm.window)
return;
Mode.display.xinerama_active = XineramaIsActive(disp);
if (Mode.display.xinerama_active)
screens = XineramaQueryScreens(disp, &num_screens);
if (!Mode.display.xinerama_active)
return;
num_screens = 0;
screens = XineramaQueryScreens(disp, &num_screens);
for (i = 0; i < num_screens; i++)
ScreenAdd(0, screens[i].screen_number, screens[i].x_org,
screens[i].y_org, screens[i].width, screens[i].height);
if (screens)
XFree(screens);
#endif
}