forked from enlightenment/efl
Add free callback to eet hashes
Fixes memleak SVN revision: 56854
This commit is contained in:
parent
2728c70bc3
commit
8c9083f65d
|
@ -60,3 +60,4 @@
|
||||||
|
|
||||||
* Move theme hash from efreet_icon.c to efreet_cache.c
|
* Move theme hash from efreet_icon.c to efreet_cache.c
|
||||||
* Don't free data returned by efreet_util_cache_names
|
* Don't free data returned by efreet_util_cache_names
|
||||||
|
* Add free callback to eet hashes
|
||||||
|
|
|
@ -90,6 +90,9 @@ static void icon_cache_update_cache_job(void *data);
|
||||||
static void desktop_cache_update_free(void *data, void *ev);
|
static void desktop_cache_update_free(void *data, void *ev);
|
||||||
static void icon_cache_update_free(void *data, void *ev);
|
static void icon_cache_update_free(void *data, void *ev);
|
||||||
|
|
||||||
|
static void *hash_array_string_add(void *hash, const char *key, void *data);
|
||||||
|
static void *hash_string_add(void *hash, const char *key, void *data);
|
||||||
|
|
||||||
EAPI int EFREET_EVENT_ICON_CACHE_UPDATE = 0;
|
EAPI int EFREET_EVENT_ICON_CACHE_UPDATE = 0;
|
||||||
EAPI int EFREET_EVENT_DESKTOP_CACHE_UPDATE = 0;
|
EAPI int EFREET_EVENT_DESKTOP_CACHE_UPDATE = 0;
|
||||||
|
|
||||||
|
@ -259,7 +262,7 @@ efreet_hash_array_string_edd(void)
|
||||||
if (hash_array_string_edd) return hash_array_string_edd;
|
if (hash_array_string_edd) return hash_array_string_edd;
|
||||||
|
|
||||||
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Efreet_Cache_Hash);
|
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Efreet_Cache_Hash);
|
||||||
/* TODO: set own hash func */
|
eddc.func.hash_add = hash_array_string_add;
|
||||||
hash_array_string_edd = eet_data_descriptor_file_new(&eddc);
|
hash_array_string_edd = eet_data_descriptor_file_new(&eddc);
|
||||||
if (!hash_array_string_edd) return NULL;
|
if (!hash_array_string_edd) return NULL;
|
||||||
|
|
||||||
|
@ -280,7 +283,7 @@ efreet_hash_string_edd(void)
|
||||||
if (hash_string_edd) return hash_string_edd;
|
if (hash_string_edd) return hash_string_edd;
|
||||||
|
|
||||||
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Efreet_Cache_Hash);
|
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Efreet_Cache_Hash);
|
||||||
/* TODO: set own hash func */
|
eddc.func.hash_add = hash_string_add;
|
||||||
hash_string_edd = eet_data_descriptor_file_new(&eddc);
|
hash_string_edd = eet_data_descriptor_file_new(&eddc);
|
||||||
if (!hash_string_edd) return NULL;
|
if (!hash_string_edd) return NULL;
|
||||||
|
|
||||||
|
@ -1087,3 +1090,25 @@ icon_cache_update_free(void *data, void *ev)
|
||||||
}
|
}
|
||||||
free(ev);
|
free(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
hash_array_string_add(void *hash, const char *key, void *data)
|
||||||
|
{
|
||||||
|
if (!hash)
|
||||||
|
hash = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
|
||||||
|
if (!hash)
|
||||||
|
return NULL;
|
||||||
|
eina_hash_add(hash, key, data);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
hash_string_add(void *hash, const char *key, void *data)
|
||||||
|
{
|
||||||
|
if (!hash)
|
||||||
|
hash = eina_hash_string_superfast_new(free);
|
||||||
|
if (!hash)
|
||||||
|
return NULL;
|
||||||
|
eina_hash_add(hash, key, data);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue