forked from enlightenment/efl
All pointers aquired with efreet_desktop_get should be free'd with
efreet_desktop_free now. SVN revision: 30982
This commit is contained in:
parent
cd20fbc9d9
commit
4142475b16
|
@ -68,6 +68,8 @@ ef_cb_desktop_parse(void)
|
|||
}
|
||||
else ret = 0;
|
||||
|
||||
efreet_desktop_free(desktop);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -132,6 +134,7 @@ ef_cb_desktop_save(void)
|
|||
}
|
||||
|
||||
printf("save data: %d\n", efreet_desktop_save(desktop));
|
||||
efreet_desktop_free(desktop);
|
||||
|
||||
desktop = efreet_desktop_empty_new("/tmp/test.desktop");
|
||||
desktop->name = strdup("Efreet Test Application");
|
||||
|
@ -144,12 +147,7 @@ ef_cb_desktop_save(void)
|
|||
ecore_list_append(desktop->categories, strdup("Enlightenment"));
|
||||
printf("save test: %d\n", efreet_desktop_save(desktop));
|
||||
unlink("/tmp/test.desktop");
|
||||
#if 0
|
||||
/* After saving a .desktop, it should be in the cache. This should then
|
||||
* be destroyed with it. */
|
||||
ecore_list_destroy(desktop->categories);
|
||||
desktop->categories = NULL;
|
||||
#endif
|
||||
efreet_desktop_free(desktop);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -365,6 +363,7 @@ ef_cb_desktop_type_parse(void)
|
|||
Efreet_Desktop *desktop;
|
||||
int my_type;
|
||||
char *val;
|
||||
int ret = 1;
|
||||
|
||||
/* add my custom desktop type to efreet */
|
||||
my_type = efreet_desktop_type_add("My_Type", cb_type_parse, NULL,
|
||||
|
@ -380,17 +379,18 @@ ef_cb_desktop_type_parse(void)
|
|||
if (desktop->type != my_type)
|
||||
{
|
||||
printf("Invalid type returned in desktop");
|
||||
return 0;
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
val = (char *)efreet_desktop_type_data_get(desktop);
|
||||
if (!val || strcmp(val, "Own key"))
|
||||
{
|
||||
printf("Invalid value of custom key (%s).\n", val);
|
||||
return 0;
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
efreet_desktop_free(desktop);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2472,6 +2472,7 @@ static void
|
|||
efreet_menu_desktop_free(Efreet_Menu_Desktop *md)
|
||||
{
|
||||
IF_RELEASE(md->id);
|
||||
if (md->desktop) efreet_desktop_free(md->desktop);
|
||||
FREE(md);
|
||||
}
|
||||
|
||||
|
@ -3414,6 +3415,7 @@ efreet_menu_directory_dirs_process(Efreet_Menu_Internal *internal)
|
|||
{
|
||||
internal->directory_cache = ecore_hash_new(ecore_str_hash, ecore_str_compare);
|
||||
ecore_hash_free_key_cb_set(internal->directory_cache, ECORE_FREE_CB(free));
|
||||
ecore_hash_free_value_cb_set(internal->directory_cache, ECORE_FREE_CB(efreet_desktop_free));
|
||||
|
||||
ecore_dlist_last_goto(internal->directory_dirs);
|
||||
while ((path = ecore_dlist_previous(internal->directory_dirs)))
|
||||
|
|
|
@ -76,6 +76,8 @@ static void efreet_util_menus_find_helper(Ecore_List *menus, const char *config_
|
|||
static void efreet_util_desktops_by_category_add(Efreet_Desktop *desktop);
|
||||
static void efreet_util_desktops_by_category_remove(Efreet_Desktop *desktop);
|
||||
|
||||
static void efreet_util_desktop_free(Efreet_Util_Desktop *ud);
|
||||
|
||||
static Ecore_Hash *desktop_by_file_id = NULL;
|
||||
static Ecore_Hash *file_id_by_desktop_path = NULL;
|
||||
static Ecore_Hash *desktops_by_category = NULL;
|
||||
|
@ -103,7 +105,7 @@ efreet_util_init(void)
|
|||
EFREET_EVENT_DESKTOP_CHANGE = ecore_event_type_new();
|
||||
desktop_by_file_id = ecore_hash_new(ecore_str_hash, ecore_str_compare);
|
||||
ecore_hash_free_key_cb_set(desktop_by_file_id, ECORE_FREE_CB(ecore_string_release));
|
||||
ecore_hash_free_value_cb_set(desktop_by_file_id, free);
|
||||
ecore_hash_free_value_cb_set(desktop_by_file_id, ECORE_FREE_CB(efreet_util_desktop_free));
|
||||
|
||||
file_id_by_desktop_path = ecore_hash_new(ecore_str_hash, ecore_str_compare);
|
||||
ecore_hash_free_key_cb_set(file_id_by_desktop_path, ECORE_FREE_CB(ecore_string_release));
|
||||
|
@ -1044,3 +1046,12 @@ efreet_util_desktops_by_category_remove(Efreet_Desktop *desktop)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
efreet_util_desktop_free(Efreet_Util_Desktop *ud)
|
||||
{
|
||||
if (!ud) return;
|
||||
|
||||
efreet_desktop_free(ud->desktop);
|
||||
free(ud);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue