some stringshare improvements for e_path_find

SVN revision: 81526
This commit is contained in:
Mike Blumenkrantz 2012-12-21 10:01:01 +00:00
parent 4ee20a2c2f
commit e9ea6454d9
1 changed files with 8 additions and 7 deletions

View File

@ -232,6 +232,7 @@ e_path_find(E_Path *ep, const char *file)
Eina_List *l;
E_Path_Dir *epd;
char *str;
Eina_Stringshare *ret;
char buf[PATH_MAX] = "";
E_OBJECT_CHECK_RETURN(ep, NULL);
@ -239,7 +240,7 @@ e_path_find(E_Path *ep, const char *file)
if (!file) return NULL;
str = eina_hash_find(ep->hash, file);
if (str) return eina_stringshare_add(str);
if (str) return eina_stringshare_ref(str);
/* Look in the default dir list */
EINA_LIST_FOREACH(ep->default_dir_list, l, epd)
{
@ -252,9 +253,9 @@ e_path_find(E_Path *ep, const char *file)
ep->hash = eina_hash_string_superfast_new(NULL);
if (eina_hash_population(ep->hash) >= 512)
_e_path_cache_free(ep);
eina_hash_add(ep->hash, file,
eina_stringshare_add(buf));
return eina_stringshare_add(buf);
ret = eina_stringshare_add(buf);
eina_hash_add(ep->hash, file, ret);
return eina_stringshare_ref(ret);
}
}
}
@ -270,9 +271,9 @@ e_path_find(E_Path *ep, const char *file)
ep->hash = eina_hash_string_superfast_new(NULL);
if (eina_hash_population(ep->hash) >= 512)
_e_path_cache_free(ep);
eina_hash_add(ep->hash, file,
eina_stringshare_add(buf));
return eina_stringshare_add(buf);
ret = eina_stringshare_add(buf);
eina_hash_add(ep->hash, file, ret);
return eina_stringshare_ref(ret);
}
}
}