discomfitor pushed a commit to branch enlightenment-0.21.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=08d96c67de1c6de2839482e510f2c0bd5a976531

commit 08d96c67de1c6de2839482e510f2c0bd5a976531
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Dec 14 10:16:23 2016 -0500

    plug iterator leak in e_comp_object_render()
    
    ==13307== 96 bytes in 1 blocks are definitely lost in loss record 6,598 of 
11,698
    ==13307==    at 0x4C2DA60: calloc (vg_replace_malloc.c:711)
    ==13307==    by 0xCECA287: eina_tiler_iterator_new (eina_tiler.c:1299)
    ==13307==    by 0x46D13D: e_comp_object_render (e_comp_object.c:3966)
    ==13307==    by 0x46DB42: e_comp_object_dirty (e_comp_object.c:3923)
    ==13307==    by 0x46017D: _e_comp_client_update (e_comp.c:343)
    ==13307==    by 0x46017D: _e_comp_cb_update (e_comp.c:400)
    ==13307==    by 0xB34D4BA: _ecore_job_event_handler (ecore_job.c:98)
    ==13307==    by 0xB34909C: _ecore_call_handler_cb (ecore_private.h:317)
    ==13307==    by 0xB34909C: _ecore_event_call (ecore_events.c:518)
    ==13307==    by 0xB350527: _ecore_main_loop_iterate_internal 
(ecore_main.c:2359)
    ==13307==    by 0xB3508A6: ecore_main_loop_begin (ecore_main.c:1287)
    ==13307==    by 0x43C88A: main (e_main.c:1093)
---
 src/bin/e_comp_object.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 95706dd..c9457ce 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3871,7 +3871,7 @@ e_comp_object_dirty(Evas_Object *obj)
 E_API Eina_Bool
 e_comp_object_render(Evas_Object *obj)
 {
-   Eina_Iterator *it;
+   Eina_Iterator *it = NULL;
    Eina_Rectangle *r;
    Eina_List *l;
    Evas_Object *o;
@@ -3960,8 +3960,8 @@ e_comp_object_render(Evas_Object *obj)
         RENDER_DEBUG("UPDATE [%p]: %d %d %dx%d -- pix = %p", cw->ec, r->x, 
r->y, r->w, r->h, pix);
      }
    if (!it) pix = NULL;
-   eina_iterator_free(it);
 end:
+   eina_iterator_free(it);
    evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
    _e_comp_object_alpha_set(cw);
 

-- 


Reply via email to