static Efreet_Icon_Theme_Directory *efreet_icon_theme_directory_new(Efreet_Ini *ini,
const char *name);
+static void efreet_icon_theme_directory_free(Efreet_Icon_Theme_Directory *dir);
static void efreet_icon_theme_cache_check(Efreet_Icon_Theme *theme);
static int efreet_icon_theme_cache_check_dir(Efreet_Icon_Theme *theme,
void
efreet_icon_shutdown(void)
{
+ void *d;
+
if (--efreet_icon_init_count)
return;
IF_FREE(efreet_icon_user_dir);
IF_FREE(efreet_icon_deprecated_user_dir);
- IF_FREE_LIST(efreet_icon_extensions);
+ EINA_LIST_FREE(efreet_icon_extensions, d) free(d);
IF_FREE_HASH(efreet_icon_themes);
IF_FREE_LIST(efreet_extra_icon_dirs);
IF_FREE_HASH(efreet_icon_cache);
+ if (fake_null)
+ {
+ efreet_icon_theme_free(fake_null);
+ fake_null = NULL;
+ }
+
ecore_shutdown();
efreet_icon_init_count = 0;
}
if (theme_name) theme = efreet_icon_theme_find(theme_name);
if (!theme)
{
+ if ((fake_null) && (!theme_name)) return fake_null;
theme = efreet_icon_theme_new();
theme->fake = 1;
if (theme_name)
static void
efreet_icon_theme_free(Efreet_Icon_Theme *theme)
{
- if (!theme) return;
+ void *d;
+ if (!theme) return;
- IF_RELEASE(theme->name.internal);
- IF_RELEASE(theme->name.name);
-
- IF_FREE(theme->comment);
- IF_FREE(theme->example_icon);
+ IF_RELEASE(theme->name.internal);
+ IF_RELEASE(theme->name.name);
+
+ IF_FREE(theme->comment);
+ IF_FREE(theme->example_icon);
- IF_FREE_LIST(theme->paths);
- IF_FREE_LIST(theme->inherits);
- IF_FREE_LIST(theme->directories);
+ EINA_LIST_FREE(theme->paths, d) free(d);
+ EINA_LIST_FREE(theme->inherits, d) free(d);
+ EINA_LIST_FREE(theme->directories, d) efreet_icon_theme_directory_free(d);
- FREE(theme);
+ FREE(theme);
}
/**
return dir;
}
+static void
+efreet_icon_theme_directory_free(Efreet_Icon_Theme_Directory *dir)
+{
+ free(dir->name);
+ free(dir);
+}
+
static int
efreet_icon_cache_find(Efreet_Icon_Cache *value, const char *key)
{
static char *efreet_menu_path_get(Efreet_Menu_Internal *internal, const char *suffix);
static Efreet_Menu_App_Dir *efreet_menu_app_dir_new(void);
+static void efreet_menu_app_dir_free(Efreet_Menu_App_Dir *dir);
static Efreet_Menu_Move *efreet_menu_move_new(void);
static void efreet_menu_move_free(Efreet_Menu_Move *move);
void
efreet_menu_internal_free(Efreet_Menu_Internal *internal)
{
+ void *d;
+
if (!internal) return;
IF_FREE(internal->file.path);
IF_FREE_LIST(internal->applications);
IF_FREE_DLIST(internal->directories);
- IF_FREE_LIST(internal->app_dirs);
+ EINA_LIST_FREE(internal->app_dirs, d) efreet_menu_app_dir_free(d);
+// IF_FREE_LIST(internal->app_dirs);
IF_FREE_LIST(internal->app_pool);
IF_FREE_DLIST(internal->directory_dirs);
IF_FREE_HASH(internal->directory_cache);
snprintf(dir_path, PATH_MAX, "%s/%s", path, file->d_name);
if (!efreet_menu_merge(parent, xml, dir_path))
+ {
+ closedir(files);
return 0;
+ }
}
closedir(files);
legacy_internal, file_path, prefix);
if (!ret)
{
+ efreet_menu_filter_free(filter);
efreet_menu_internal_free(legacy_internal);
FREE(path);
closedir(files);
closedir(files);
FREE(path);
+ efreet_menu_filter_free(filter);
return legacy_internal;
}
return dir;
}
+static void
+efreet_menu_app_dir_free(Efreet_Menu_App_Dir *dir)
+{
+ free(dir->path);
+ free(dir->prefix);
+ free(dir);
+}
+
/**
* @internal
* @param a: The app dir to compare too
if (!internal || internal->directory_dirs) return;
internal->directory_dirs = ecore_dlist_new();
+ ecore_dlist_free_cb_set(internal->directory_dirs, free);
}
static void
if (!internal || internal->directories) return;
internal->directories = ecore_dlist_new();
+ ecore_dlist_free_cb_set(internal->directories, free);
}
static char *
EAPI void
efreet_mime_shutdown(void)
{
+ void *d;
+
if (_init_count == 0)
return;
_init_count--;
efreet_mime_icons_debug();
- IF_FREE_LIST(globs);
- IF_FREE_LIST(magics);
+ EINA_LIST_FREE(globs, d) efreet_mime_glob_free(d);
+ EINA_LIST_FREE(magics, d) efreet_mime_magic_free(d);
IF_FREE_HASH(monitors);
IF_FREE_HASH(wild);
IF_FREE_HASH(mime_icons);
}
}
}
-
+/*
if (entry)
{
IF_FREE(entry->value);
IF_FREE(entry->mask);
FREE(entry);
}
+ */
}
/**
double start;
char buf[PATH_MAX];
- if (!fill->dirs)
+ if ((!fill->dirs) && (!fill->files))
{
free(fill);
idler = NULL;
}
start = ecore_time_get();
- if (!fill->files) fill->files = opendir(fill->current->path);
+ if (!fill->files)
+ {
+ fill->files = opendir(fill->current->path);
+ }
if (!fill->files)
{
/* Couldn't open this dir, continue to next */