raster pushed a commit to branch master.

commit bfec26893d2ed3950aa1367de3abb2cb4716593d
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Thu May 23 20:56:08 2013 +0900

    dont leak shape rects!
---
 src/bin/e_comp.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index ee66622..9d8b903 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -545,14 +545,16 @@ _e_comp_win_update(E_Comp_Win *cw)
         if (cw->free_shape)
           {
              ecore_x_pixmap_geometry_get(cw->win, NULL, NULL, &(cw->w), 
&(cw->h));
-             rects = 
(Eina_Rectangle*)ecore_x_window_shape_rectangles_get(cw->win, &num);
+             rects = (Eina_Rectangle 
*)ecore_x_window_shape_rectangles_get(cw->win, &num);
              e_container_shape_rects_set(cw->shape, rects, num);
+             if (rects) free(rects);
              if (cw->shape->shape_rects)
                e_container_shape_input_rects_set(cw->shape, NULL, 0);
              else
                {
-                  rects = 
(Eina_Rectangle*)ecore_x_window_shape_input_rectangles_get(cw->win, &num);
+                  rects = (Eina_Rectangle 
*)ecore_x_window_shape_input_rectangles_get(cw->win, &num);
                   e_container_shape_input_rects_set(cw->shape, rects, num);
+                  if (rects) free(rects);
                }
           }
         if (cw->shape->shape_rects)
@@ -2936,14 +2938,16 @@ _e_comp_win_shape_create(E_Comp_Win *cw, int x, int y, 
int w, int h)
      }
    if (!cw->shape) cw->shape = 
e_container_shape_add(eina_list_data_get(cw->c->man->containers));
    e_container_shape_resize(cw->shape, w, h);
-   rects = (Eina_Rectangle*)ecore_x_window_shape_rectangles_get(cw->win, &num);
+   rects = (Eina_Rectangle *)ecore_x_window_shape_rectangles_get(cw->win, 
&num);
    e_container_shape_rects_set(cw->shape, rects, num);
+   if (rects) free(rects);
    if (cw->shape->shape_rects)
      e_container_shape_input_rects_set(cw->shape, NULL, 0);
    else
      {
         rects = 
(Eina_Rectangle*)ecore_x_window_shape_input_rectangles_get(cw->win, &num);
         e_container_shape_input_rects_set(cw->shape, rects, num);
+        if (rects) free(rects);
      }
    _e_comp_win_shape_init(cw, w, h);
    cw->shape->comp_win = cw;

-- 

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may

Reply via email to