don't leak strings in menu

This commit is contained in:
Davide Andreoli 2021-04-24 17:17:07 +02:00
parent ab180f1199
commit 69b258794a
1 changed files with 9 additions and 2 deletions

View File

@ -882,6 +882,8 @@ _places_header_activated_cb(void *data, Evas_Object *o, const char *emission, co
/* E17 menu augmentation */
static Eina_List *_menu_strings = NULL;
void
_places_menu_folder_cb(void *data, E_Menu *m, E_Menu_Item *mi)
{
@ -909,11 +911,15 @@ _places_bookmarks_parse(E_Menu *em)
{
char line[PATH_MAX];
char buf[PATH_MAX];
const char *s;
E_Menu_Item *mi;
Efreet_Uri *uri;
char *alias;
FILE* fp;
EINA_LIST_FREE(_menu_strings, s)
eina_stringshare_del(s);
snprintf(buf, sizeof(buf), "%s/gtk-3.0/bookmarks", efreet_config_home_get());
fp = fopen(buf, "r");
if (!fp)
@ -940,8 +946,9 @@ _places_bookmarks_parse(E_Menu *em)
e_menu_item_label_set(mi, alias ? alias :
ecore_file_file_get(uri->path));
e_util_menu_item_theme_icon_set(mi, "user-bookmarks");
e_menu_item_callback_set(mi, _places_menu_folder_cb,
strdup(uri->path)); //TODO free somewhere
s = eina_stringshare_add(uri->path);
e_menu_item_callback_set(mi, _places_menu_folder_cb, s);
_menu_strings = eina_list_append(_menu_strings, s);
}
if (uri) efreet_uri_free(uri);
}