efreet: Only read data from disk when modified

SVN revision: 47539
This commit is contained in:
Sebastian Dransfeld 2010-03-28 19:31:37 +00:00
parent d504b34ac3
commit c7dc3a221d
1 changed files with 9 additions and 6 deletions

View File

@ -37,15 +37,18 @@ cache_add(const char *path, const char *file_id, int priority __UNUSED__)
{ {
Efreet_Desktop *desk; Efreet_Desktop *desk;
char *ext; char *ext;
long long mtime;
ext = strrchr(path, '.'); ext = strrchr(path, '.');
if (!ext || (strcmp(ext, ".desktop") && strcmp(ext, ".directory"))) return 1; if (!ext || (strcmp(ext, ".desktop") && strcmp(ext, ".directory"))) return 1;
/* desk = efreet_desktop_get(path);
* TODO: if (!desk) return 1;
* Get cached version first and check mtime. Only get uncached if we need mtime = ecore_file_mod_time(path);
* to update. if (mtime != desk->load_time)
*/ {
desk = efreet_desktop_uncached_new(path); efreet_desktop_free(desk);
desk = efreet_desktop_uncached_new(path);
}
if (!desk || (desk->type != EFREET_DESKTOP_TYPE_APPLICATION && if (!desk || (desk->type != EFREET_DESKTOP_TYPE_APPLICATION &&
desk->type != EFREET_DESKTOP_TYPE_DIRECTORY)) desk->type != EFREET_DESKTOP_TYPE_DIRECTORY))