Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        screen.c 


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

===================================================================
RCS file: /cvs/e/e16/e/src/screen.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- screen.c    30 Sep 2007 12:32:35 -0000      1.28
+++ screen.c    3 Nov 2007 10:28:27 -0000       1.29
@@ -64,20 +64,25 @@
    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
 }
 



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to