* edje: cleanup collection early if the file is dangling.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 8 Sep 2010 13:45:21 +0000 (13:45 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 8 Sep 2010 13:45:21 +0000 (13:45 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@51991 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_cache.c

index b95428d..bcb0115 100644 (file)
@@ -424,8 +424,18 @@ _edje_cache_coll_unref(Edje_File *edf, Edje_Part_Collection *edc)
    else if (ce->ref)
      {
        ce->ref = NULL;
-       edf->collection_cache = eina_list_prepend(edf->collection_cache, edc);
-       _edje_cache_coll_clean(edf);
+
+       if (edf->dangling)
+         {
+            /* No need to keep the collection around if the file is dangling */
+            _edje_collection_free(edf, edc, ce);
+            _edje_cache_coll_flush(edf);
+         }
+       else
+         {
+            edf->collection_cache = eina_list_prepend(edf->collection_cache, edc);
+            _edje_cache_coll_clean(edf);
+         }
      }
 }