rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=129bf429422e68e3ad4d3f7c3a99eb0d91068235
commit 129bf429422e68e3ad4d3f7c3a99eb0d91068235 Author: Vyacheslav Reutskiy <[email protected]> Date: Mon Jul 25 12:20:46 2016 +0300 widget_list: fix memory leaks Change-Id: Ia280feaba7664f67bd97bf41961cb5d692b4d316 --- src/bin/common/widget_list.c | 16 ++++++++-------- src/bin/common/widget_list.h | 2 +- src/bin/ui/tab_home_import_edj.c | 7 ++++++- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/bin/common/widget_list.c b/src/bin/common/widget_list.c index 95e3ed6..e20bbda 100644 --- a/src/bin/common/widget_list.c +++ b/src/bin/common/widget_list.c @@ -133,7 +133,7 @@ style_name_get(const Eina_Stringshare *group_name) return strdup(style); } -const char * +Eina_Stringshare * option_widget_name_get(const char *str, Eina_List **style_list) { int len = strlen(str); @@ -166,7 +166,7 @@ option_widget_name_get(const char *str, Eina_List **style_list) if (!copying && str[i] == ',') { style[i - first] = '\0'; - list = eina_list_append(list, strdup(style)); + list = eina_list_append(list, eina_stringshare_add(style)); first = i + 1; continue; } @@ -179,15 +179,15 @@ option_widget_name_get(const char *str, Eina_List **style_list) else { style[i - first] = '\0'; - list = eina_list_append(list, strdup(style)); + list = eina_list_append(list, eina_stringshare_add(style)); } *style_list = list; - return strdup(widget); + return eina_stringshare_add(widget); } -const char * +Eina_Stringshare * option_style_name_get(const char *str, Eina_List **cp_style_list) { int len = strlen(str); @@ -217,7 +217,7 @@ option_style_name_get(const char *str, Eina_List **cp_style_list) if (str[i] == ',') { cp_style[i - first] = '\0'; - list = eina_list_append(list, strdup(cp_style)); + list = eina_list_append(list, eina_stringshare_add(cp_style)); first = i + 1; continue; } @@ -230,12 +230,12 @@ option_style_name_get(const char *str, Eina_List **cp_style_list) else { cp_style[i - first] = '\0'; - list = eina_list_append(list, strdup(cp_style)); + list = eina_list_append(list, eina_stringshare_add(cp_style)); } *cp_style_list = list; - return strdup(style); + return eina_stringshare_add(style); } Eina_List * diff --git a/src/bin/common/widget_list.h b/src/bin/common/widget_list.h index b04dc5d..b3f93e0 100644 --- a/src/bin/common/widget_list.h +++ b/src/bin/common/widget_list.h @@ -38,7 +38,7 @@ typedef struct _End_Item_Data End_Item_Data; const char *widget_name_get(const Eina_Stringshare *group_name); const char *style_name_get(const Eina_Stringshare *group_name); -const char *option_widget_name_get(const char *str, Eina_List **style_list); +Eina_Stringshare *option_widget_name_get(const char *str, Eina_List **style_list); const char *option_style_name_get(const char *str, Eina_List **cp_style_list); Eina_List *widget_prefix_list_get(Eina_List *collections, const char *widget_name, const char *style_name); diff --git a/src/bin/ui/tab_home_import_edj.c b/src/bin/ui/tab_home_import_edj.c index cd24c32..1f62c2b 100644 --- a/src/bin/ui/tab_home_import_edj.c +++ b/src/bin/ui/tab_home_import_edj.c @@ -641,6 +641,8 @@ _genlist_style_selected_set(Node *item, Eina_List *styles, Eina_Bool selected) widget_list = eina_list_append(widget_list, tmp); } } + eina_stringshare_del(style_name); + EINA_LIST_STRINGSHARE_FREE(cp_style_list); } } } @@ -649,7 +651,8 @@ void _tab_import_edj_data_set(const char *name, const char *path, const char *edj, const Eina_List *widgets) { Eina_List *style_list = NULL; - const char *str, *widget_name; + const char *str; + Eina_Stringshare *widget_name; Eina_Strbuf *buf = eina_strbuf_new(); Eina_Bool first_not_found = true; @@ -697,6 +700,8 @@ _tab_import_edj_data_set(const char *name, const char *path, const char *edj, co eina_strbuf_append_printf(buf, first_not_found ? "%s" : ", %s", widget_name); first_not_found = false; } + eina_stringshare_del(widget_name); + EINA_LIST_STRINGSHARE_FREE(style_list); } elm_genlist_realized_items_update(tab_edj.genlist); if (eina_strbuf_length_get(buf)) --
