edje_entry: Fix crash on selection. 42/82242/2
authorPankaj Mittal <m.pankaj@samsung.com>
Tue, 2 Aug 2016 07:38:00 +0000 (13:08 +0530)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Sat, 6 Aug 2016 00:45:20 +0000 (17:45 -0700)
evas: properly clean up all memory.
Summary:
When text is selected, crash happens due to double free as rectangles are freed both in _sel_update
and _evas_textblock_selection_iterator_free hence removing free from _sel_update.
upstream commit: 6bd863cf4ffb46f0267e96844cea37a95599e9de

Signed-off-by: Pankaj Mittal <m.pankaj@samsung.com>
Change-Id: Ib5afa8be821e983aa2e3c562c5f8df70151e5e00

src/lib/edje/edje_entry.c
src/lib/evas/canvas/evas_object_textblock.c

index 102c6e2..29f4bd0 100644 (file)
@@ -727,7 +727,6 @@ _sel_update(Edje *ed, Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Entr
                   evas_object_move(sel->obj_fg, x + r->x, y + r->y);
                   evas_object_resize(sel->obj_fg, r->w, r->h);
                }
-             free(r);
           }
         eina_iterator_free(range);
 
index 4de1e69..af5c020 100644 (file)
@@ -697,8 +697,10 @@ _evas_textblock_selection_iterator_get_container(Evas_Textblock_Selection_Iterat
 static void
 _evas_textblock_selection_iterator_free(Evas_Textblock_Selection_Iterator *it)
 {
-   while (it->list)
-     it->list = eina_list_remove_list(it->list, it->list);
+   Evas_Textblock_Rectangle *tr;
+
+   EINA_LIST_FREE(it->list, tr)
+      free(tr);
    EINA_MAGIC_SET(&it->iterator, 0);
    free(it);
 }