From aa94a311f57d56baff653d9858204feb4c72785b Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Fri, 21 Mar 2014 02:35:29 +0900 Subject: [PATCH] test_dnd: Fixed memory leak. Free item's data on item deletion. This fixes coverity CID 1193246: Resource leak (RESOURCE_LEAK). --- legacy/elementary/src/bin/test_dnd.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/legacy/elementary/src/bin/test_dnd.c b/legacy/elementary/src/bin/test_dnd.c index 739843f008..63b89fd504 100644 --- a/legacy/elementary/src/bin/test_dnd.c +++ b/legacy/elementary/src/bin/test_dnd.c @@ -72,6 +72,12 @@ gl_content_get(void *data, Evas_Object *obj, const char *part) return NULL; } +static void +gl_del_cb(void *data, Evas_Object *obj EINA_UNUSED) +{ + eina_stringshare_del(data); +} + static void _win_del(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -184,8 +190,8 @@ _grid_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it, Elm_ *p2 = '\0'; printf("Item %s\n", p); if (!it) it = elm_gengrid_last_item_get(obj); - if (it) it = elm_gengrid_item_insert_after(obj, gic, strdup(p), it, NULL, NULL); - else it = elm_gengrid_item_append(obj, gic, strdup(p), NULL, NULL); + if (it) it = elm_gengrid_item_insert_after(obj, gic, eina_stringshare_add(p), it, NULL, NULL); + else it = elm_gengrid_item_append(obj, gic, eina_stringshare_add(p), NULL, NULL); p = p2; } else p = NULL; @@ -901,6 +907,7 @@ test_dnd_genlist_gengrid(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v gic->item_style = "default"; gic->func.text_get = gl_text_get; gic->func.content_get = gl_content_get; + gic->func.del = gl_del_cb; elm_drop_item_container_add(grid, ELM_SEL_FORMAT_TARGETS, _grid_item_getcb, NULL, NULL, NULL, NULL, NULL, NULL, _grid_dropcb, NULL);