Remove raster's stupid cache
And just disable cache limit on the already existing cache. SVN revision: 45881
This commit is contained in:
parent
edc00590b6
commit
291c525a42
|
@ -22,8 +22,7 @@ efreet_ini.c \
|
||||||
efreet_desktop.c \
|
efreet_desktop.c \
|
||||||
efreet_menu.c \
|
efreet_menu.c \
|
||||||
efreet_utils.c \
|
efreet_utils.c \
|
||||||
efreet_uri.c \
|
efreet_uri.c
|
||||||
efreet_cache.c
|
|
||||||
|
|
||||||
|
|
||||||
installed_headersdir = $(includedir)/efreet
|
installed_headersdir = $(includedir)/efreet
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
/* vim: set sw=4 ts=4 sts=4 et: */
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "Efreet.h"
|
|
||||||
#include "efreet_private.h"
|
|
||||||
|
|
||||||
/* FIXME: need a mmaped hash file that apps can share */
|
|
||||||
|
|
||||||
static Eina_Hash *icon_cache = NULL;
|
|
||||||
|
|
||||||
static void
|
|
||||||
path_free(const char *path)
|
|
||||||
{
|
|
||||||
if (path == NON_EXISTING) return;
|
|
||||||
eina_stringshare_del(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
icon_cache_add(void)
|
|
||||||
{
|
|
||||||
if (icon_cache) return;
|
|
||||||
icon_cache = eina_hash_string_superfast_new(EINA_FREE_CB(path_free));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
efreet_cache_clear(void)
|
|
||||||
{
|
|
||||||
if (!icon_cache) return;
|
|
||||||
IF_FREE_HASH(icon_cache);
|
|
||||||
icon_cache = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
efreet_icon_hash_get(const char *theme_name, const char *icon, int size)
|
|
||||||
{
|
|
||||||
const char *file;
|
|
||||||
char buf[4096];
|
|
||||||
|
|
||||||
if (!icon_cache) return NULL;
|
|
||||||
snprintf(buf, sizeof(buf), "%s/::/%s/::/%i", theme_name, icon, size);
|
|
||||||
file = eina_hash_find(icon_cache, buf);
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
efreet_icon_hash_put(const char *theme_name, const char *icon, int size, const char *file)
|
|
||||||
{
|
|
||||||
char buf[4096];
|
|
||||||
|
|
||||||
icon_cache_add();
|
|
||||||
if (!icon_cache) return;
|
|
||||||
snprintf(buf, sizeof(buf), "%s/::/%s/::/%i", theme_name, icon, size);
|
|
||||||
if (file == NON_EXISTING)
|
|
||||||
eina_hash_add(icon_cache, buf, (void *)NON_EXISTING);
|
|
||||||
else if (file)
|
|
||||||
eina_hash_add(icon_cache, buf, (void *)eina_stringshare_add(file));
|
|
||||||
}
|
|
|
@ -368,15 +368,9 @@ efreet_icon_find_theme_check(const char *theme_name)
|
||||||
EAPI char *
|
EAPI char *
|
||||||
efreet_icon_path_find(const char *theme_name, const char *icon, unsigned int size)
|
efreet_icon_path_find(const char *theme_name, const char *icon, unsigned int size)
|
||||||
{
|
{
|
||||||
const char *cached;
|
|
||||||
char *value;
|
char *value;
|
||||||
Efreet_Icon_Theme *theme;
|
Efreet_Icon_Theme *theme;
|
||||||
|
|
||||||
if ((cached = efreet_icon_hash_get(theme_name, icon, size)) != NULL)
|
|
||||||
{
|
|
||||||
if (cached == NON_EXISTING) return NULL;
|
|
||||||
return strdup(cached);
|
|
||||||
}
|
|
||||||
theme = efreet_icon_find_theme_check(theme_name);
|
theme = efreet_icon_find_theme_check(theme_name);
|
||||||
|
|
||||||
#ifdef SLOPPY_SPEC
|
#ifdef SLOPPY_SPEC
|
||||||
|
@ -396,8 +390,6 @@ efreet_icon_path_find(const char *theme_name, const char *icon, unsigned int siz
|
||||||
*/
|
*/
|
||||||
if (!value || (value == NON_EXISTING)) value = efreet_icon_fallback_icon(icon);
|
if (!value || (value == NON_EXISTING)) value = efreet_icon_fallback_icon(icon);
|
||||||
|
|
||||||
efreet_icon_hash_put(theme_name, icon, size, value);
|
|
||||||
|
|
||||||
if (value == NON_EXISTING) value = NULL;
|
if (value == NON_EXISTING) value = NULL;
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -1637,5 +1629,5 @@ efreet_icon_cache_add(Efreet_Icon_Theme *theme, const char *icon, unsigned int s
|
||||||
if (!l) eina_hash_add(efreet_icon_cache, theme, list);
|
if (!l) eina_hash_add(efreet_icon_cache, theme, list);
|
||||||
else eina_hash_modify(efreet_icon_cache, theme, list);
|
else eina_hash_modify(efreet_icon_cache, theme, list);
|
||||||
|
|
||||||
efreet_icon_cache_flush(theme, list);
|
//efreet_icon_cache_flush(theme, list);
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,10 +199,6 @@ const char *efreet_desktop_environment_get(void);
|
||||||
|
|
||||||
#define NON_EXISTING (void *)-1
|
#define NON_EXISTING (void *)-1
|
||||||
|
|
||||||
void efreet_cache_clear(void);
|
|
||||||
const char *efreet_icon_hash_get(const char *theme_name, const char *icon, int size);
|
|
||||||
void efreet_icon_hash_put(const char *theme_name, const char *icon, int size, const char *file);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -570,7 +570,6 @@ efreet_util_cache_fill(__UNUSED__ void *data)
|
||||||
free(fill);
|
free(fill);
|
||||||
idler = NULL;
|
idler = NULL;
|
||||||
fill = NULL;
|
fill = NULL;
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, NULL, NULL, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, NULL, NULL, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -596,7 +595,6 @@ efreet_util_cache_fill(__UNUSED__ void *data)
|
||||||
eina_hash_foreach(file_id_by_desktop_path, dump, NULL);
|
eina_hash_foreach(file_id_by_desktop_path, dump, NULL);
|
||||||
DBG("%d", eina_hash_population(desktop_by_file_id));
|
DBG("%d", eina_hash_population(desktop_by_file_id));
|
||||||
#endif
|
#endif
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, NULL, NULL, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, NULL, NULL, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -702,7 +700,6 @@ efreet_util_cache_add(const char *path, const char *file_id, int priority, int e
|
||||||
ev->current = desktop;
|
ev->current = desktop;
|
||||||
efreet_desktop_ref(ev->current);
|
efreet_desktop_ref(ev->current);
|
||||||
ev->change = EFREET_DESKTOP_CHANGE_ADD;
|
ev->change = EFREET_DESKTOP_CHANGE_ADD;
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -723,7 +720,6 @@ efreet_util_cache_add(const char *path, const char *file_id, int priority, int e
|
||||||
ev->change = EFREET_DESKTOP_CHANGE_UPDATE;
|
ev->change = EFREET_DESKTOP_CHANGE_UPDATE;
|
||||||
efreet_desktop_free(ud->desktop);
|
efreet_desktop_free(ud->desktop);
|
||||||
ud->desktop = desktop;
|
ud->desktop = desktop;
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -755,7 +751,6 @@ efreet_util_cache_remove(const char *path, const char *file_id, int priority)
|
||||||
ev->current = ud->desktop;
|
ev->current = ud->desktop;
|
||||||
efreet_desktop_ref(ev->current);
|
efreet_desktop_ref(ev->current);
|
||||||
ev->change = EFREET_DESKTOP_CHANGE_REMOVE;
|
ev->change = EFREET_DESKTOP_CHANGE_REMOVE;
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
||||||
|
|
||||||
eina_hash_del(desktop_by_file_id, file_id, ud);
|
eina_hash_del(desktop_by_file_id, file_id, ud);
|
||||||
|
@ -804,7 +799,6 @@ efreet_util_cache_reload(const char *path, const char *file_id, int priority)
|
||||||
ev->previous = ud->desktop;
|
ev->previous = ud->desktop;
|
||||||
efreet_desktop_ref(ev->previous);
|
efreet_desktop_ref(ev->previous);
|
||||||
ev->change = EFREET_DESKTOP_CHANGE_UPDATE;
|
ev->change = EFREET_DESKTOP_CHANGE_UPDATE;
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
||||||
|
|
||||||
efreet_desktop_free(ud->desktop);
|
efreet_desktop_free(ud->desktop);
|
||||||
|
@ -826,7 +820,6 @@ efreet_util_cache_reload(const char *path, const char *file_id, int priority)
|
||||||
ev->current = desktop;
|
ev->current = desktop;
|
||||||
efreet_desktop_ref(ev->current);
|
efreet_desktop_ref(ev->current);
|
||||||
ev->change = EFREET_DESKTOP_CHANGE_ADD;
|
ev->change = EFREET_DESKTOP_CHANGE_ADD;
|
||||||
efreet_cache_clear();
|
|
||||||
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, efreet_event_desktop_change_free, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue