don't leak strings in menu
This commit is contained in:
parent
ab180f1199
commit
69b258794a
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue