Edje_Real_Part *_edje_real_part_get(const Edje *ed, const char *part);
Edje_Real_Part *_edje_real_part_recursive_get(Edje **ed, const char *part);
Edje_Color_Class *_edje_color_class_find(const Edje *ed, const char *color_class);
+// The color_class has to be a pointer to an Eet owned string.
Edje_Color_Class *_edje_color_class_recursive_find(const Edje *ed, const char *color_class);
void _edje_color_class_on_del(Edje *ed, Edje_Part *ep);
void _edje_color_class_hash_free(void);
void *
_edje_hash_find_helper(const Eina_Hash *hash, const char *key)
{
+ static const char *remember_key = NULL;
void *data;
int i, j;
char **tokens;
if (data)
return data;
- tokens = eina_str_split_full(key, "/", 0, &tokens_count);
+ // We only receive pointer from Eet files as key, we can
+ // assume them constant over the life time of the program.
+ if (remember_key == key)
+ return NULL;
+ tokens = eina_str_split_full(key, "/", 0, &tokens_count);
if ((tokens) && (tokens_count > 1))
{
Eina_Strbuf *buf = NULL;
eina_strbuf_free(buf);
}
+ else
+ {
+ remember_key = key;
+ }
if (tokens)
{