fix det leeek

SVN revision: 18209
This commit is contained in:
Carsten Haitzler 2005-11-02 08:13:56 +00:00
parent 1baca6a2a7
commit bcab625b79
4 changed files with 18 additions and 4 deletions

View File

@ -207,6 +207,19 @@ _edje_cache_coll_clean(Edje_File *edf)
}
}
void
_edje_cache_coll_flush(Edje_File *edf)
{
while (edf->collection_cache)
{
Edje_Part_Collection *edc;
edc = evas_list_last(edf->collection_cache)->data;
edf->collection_cache = evas_list_remove_list(edf->collection_cache, evas_list_last(edf->collection_cache));
_edje_collection_free(edf, edc);
}
}
void
_edje_cache_coll_unref(Edje_File *edf, Edje_Part_Collection *edc)
{
@ -316,7 +329,7 @@ edje_collection_cache_flush(void)
Edje_File *edf;
edf = l->data;
_edje_cache_coll_clean(edf);
_edje_cache_coll_flush(edf);
}
/* FIXME: freach in file hash too! */
_edje_collection_cache_size = ps;

View File

@ -669,7 +669,7 @@ _edje_file_free(Edje_File *edf)
}
if (edf->path) free(edf->path);
if (edf->compiler) free(edf->compiler);
if (edf->collection_cache) _edje_cache_coll_clean(edf);
if (edf->collection_cache) _edje_cache_coll_flush(edf);
_edje_textblock_style_cleanup(edf);
free(edf);
}

View File

@ -918,6 +918,7 @@ void _edje_textblock_style_parse_and_fix(Edje_File *edf);
void _edje_textblock_style_cleanup(Edje_File *edf);
Edje_File *_edje_cache_file_coll_open(char *file, char *coll, int *error_ret, Edje_Part_Collection **edc_ret);
void _edje_cache_coll_clean(Edje_File *edf);
void _edje_cache_coll_flush(Edje_File *edf);
void _edje_cache_coll_unref(Edje_File *edf, Edje_Part_Collection *edc);
void _edje_cache_file_unref(Edje_File *edf);

View File

@ -140,7 +140,7 @@ _edje_smart_show(Evas_Object * obj)
ed = evas_object_smart_data_get(obj);
if (!ed) return;
if (evas_object_visible_get(obj)) return;
if (evas_object_visible_get(ed->clipper)) return;
if ((ed->collection) && (evas_object_clipees_get(ed->clipper)))
evas_object_show(ed->clipper);
_edje_emit(ed, "show", "");
@ -153,7 +153,7 @@ _edje_smart_hide(Evas_Object * obj)
ed = evas_object_smart_data_get(obj);
if (!ed) return;
if (!evas_object_visible_get(obj)) return;
if (!evas_object_visible_get(ed->clipper)) return;
if ((ed->collection) && (evas_object_clipees_get(ed->clipper)))
evas_object_hide(ed->clipper);
_edje_emit(ed, "hide", "");