Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        Makefile.am edje_load.c edje_private.h 
Added Files:
        edje_cache.c edje_textblock_styles.c 


Log Message:


code3 clean - move code to special files and maybe fix a bug?

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Makefile.am,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- Makefile.am 3 Sep 2005 18:52:10 -0000       1.31
+++ Makefile.am 5 Oct 2005 08:38:04 -0000       1.32
@@ -35,7 +35,9 @@
 edje_container.c \
 edje_container.h \
 edje_message_queue.c \
-edje_private.h
+edje_private.h \
+edje_cache.c \
+edje_textblock_styles.c
 
 libedje_la_LIBADD       = -lm @EVAS_LIBS@ @ECORE_LIBS@ @EET_LIBS@ 
@EMBRYO_LIBS@ @fnmatch_libs@
 libedje_la_CPPFLAGS     =
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- edje_load.c 20 Sep 2005 09:20:57 -0000      1.70
+++ edje_load.c 5 Oct 2005 08:38:04 -0000       1.71
@@ -5,23 +5,6 @@
 #include "Edje.h"
 #include "edje_private.h"
 
-static Evas_Hash   *_edje_file_hash = NULL;
-static int          _edje_file_cache_size = 16;
-static Evas_List   *_edje_file_cache = NULL;
-static int          _edje_collection_cache_size = 16;
-
-static Edje_File *_edje_file_cache_find(char *path);
-static void _edje_file_cache_clean(void);
-static void _edje_file_cache_add(Edje_File *edf);
-static void _edje_file_unref(Edje_File *edf);
-static void _edje_file_ref(Edje_File *edf);
-static void _edje_file_cleanup(void);
-static Edje_Part_Collection *_edje_collection_find(Edje_File *edf, char *part);
-static void _edje_collection_cache_clean(Edje_File *edf);
-static void _edje_collection_cache_add(Edje_File *edf, Edje_Part_Collection 
*coll);
-static void _edje_collection_unref(Edje_File *edf, Edje_Part_Collection *coll);
-static void _edje_collection_cleanup(Edje_File *edf);
-
 static void _edje_collection_free_part_description_free(Edje_Part_Description 
*desc);
 static Evas_Bool _edje_file_collection_hash_foreach(Evas_Hash *hash, const 
char *key, void *data, void *fdata);
 #ifdef EDJE_PROGRAM_CACHE
@@ -398,35 +381,16 @@
 Evas_List *
 edje_file_collection_list(const char *file)
 {
-   Eet_File *ef = NULL;
    Evas_List *lst = NULL;
-   Edje_File *ed_file;
-
-   if (!file || !*file) return NULL;
+   Edje_File *edf;
 
-   ed_file = evas_hash_find(_edje_file_hash, file);
-   if (!ed_file) ed_file = _edje_file_cache_find((char *)file);
-   if (!ed_file)
-     {
-       ef = eet_open((char *)file, EET_FILE_MODE_READ);
-       if (!ef) return NULL;
-       ed_file = eet_data_read(ef, _edje_edd_edje_file, "edje_file");
-       if (!ed_file)
-         {
-            eet_close(ef);
-            return NULL;
-         }
-       eet_close(ef);
-       ed_file->path = strdup(file);
-       ed_file->collection_hash = NULL;
-       ed_file->references = 1;
-       _edje_file_hash = evas_hash_add(_edje_file_hash, ed_file->path, 
ed_file);
-     }
-   if (ed_file->collection_dir)
+   if ((!file) || (!*file)) return NULL;
+   edf = _edje_cache_file_coll_open((char *)file, NULL, NULL, NULL);
+   if (edf->collection_dir)
      {
        Evas_List *l;
        
-       for (l = ed_file->collection_dir->entries; l; l = l->next)
+       for (l = edf->collection_dir->entries; l; l = l->next)
          {
             Edje_Part_Collection_Directory_Entry *ce;
             
@@ -434,8 +398,7 @@
             lst = evas_list_append(lst, strdup(ce->entry));
          }
      }
-   if (ed_file->references > 0) _edje_file_unref(ed_file);
-   else _edje_file_free(ed_file);
+   _edje_cache_file_unref(edf);   
    return lst;
 }
 
@@ -464,30 +427,12 @@
 char *
 edje_file_data_get(const char *file, const char *key)
 {
-   Eet_File *ef = NULL;
-   Edje_File *ed_file;
+   Edje_File *edf;
    Evas_List *l;
    char *str = NULL;
    
-   ed_file = evas_hash_find(_edje_file_hash, file);
-   if (!ed_file) ed_file = _edje_file_cache_find((char *)file);
-   if (!ed_file)
-     {
-       ef = eet_open((char *)file, EET_FILE_MODE_READ);
-       if (!ef) return NULL;
-       ed_file = eet_data_read(ef, _edje_edd_edje_file, "edje_file");
-       if (!ed_file)
-         {
-            eet_close(ef);
-            return NULL;
-         }
-       eet_close(ef);
-       ed_file->path = strdup(file);
-       ed_file->collection_hash = NULL;
-       ed_file->references = 1;
-       _edje_file_hash = evas_hash_add(_edje_file_hash, ed_file->path, 
ed_file);
-     }
-   for (l = ed_file->data; l; l = l->next)
+   edf = _edje_cache_file_coll_open((char *)file, NULL, NULL, NULL);
+   for (l = edf->data; l; l = l->next)
      {
        Edje_Data *di;
        
@@ -498,630 +443,25 @@
             break;
          }
      }
-   if (ed_file->references > 0) _edje_file_unref(ed_file);
-   else _edje_file_free(ed_file);
+   _edje_cache_file_unref(edf);
    return str;
 }
 
 void
-edje_file_cache_set(int count)
-{
-   if (count < 0) count = 0;
-   _edje_file_cache_size = count;
-   _edje_file_cache_clean();
-}
-
-int
-edje_file_cache_get(void)
-{
-   return _edje_file_cache_size;
-}
-
-void
-edje_file_cache_flush(void)
-{
-   int ps;
-   
-   ps = _edje_file_cache_size;
-   _edje_file_cache_size = 0;
-   _edje_file_cache_clean();
-   _edje_file_cache_size = ps;
-}
-
-void
-edje_collection_cache_set(int count)
-{
-   Evas_List *l;
-   
-   if (count < 0) count = 0;
-   _edje_collection_cache_size = count;
-   for (l = _edje_file_cache; l; l = l->next)
-     {
-       Edje_File *edf;
-       
-       edf = l->data;
-       _edje_collection_cache_clean(edf);
-     }
-}
-
-int
-edje_collection_cache_get(void)
-{
-   return _edje_collection_cache_size;
-}
-
-void
-edje_collection_cache_flush(void)
-{
-   int ps;
-   Evas_List *l;
-   
-   ps = _edje_collection_cache_size;
-   _edje_collection_cache_size = 0;
-   for (l = _edje_file_cache; l; l = l->next)
-     {
-       Edje_File *edf;
-       
-       edf = l->data;
-       _edje_collection_cache_clean(edf);
-     }
-   _edje_collection_cache_size = ps;
-}
-    
-
-static Edje_File *
-_edje_file_cache_find(char *path)
-{
-   Evas_List *l;
-   
-   for (l = _edje_file_cache; l; l = l->next)
-     {
-       Edje_File *edf;
-       
-       edf = l->data;
-       if (!strcmp(edf->path, path))
-         {
-            edf->references = 1;
-            _edje_file_cache = evas_list_remove_list(_edje_file_cache, l);
-            _edje_file_hash = evas_hash_add(_edje_file_hash, path, edf);
-            return edf;
-         }
-     }
-   return NULL;
-}
-
-static void
-_edje_file_cache_clean(void)
-{
-   int count;
-   
-   count = evas_list_count(_edje_file_cache);
-   while ((_edje_file_cache) && (count > _edje_file_cache_size))
-     {
-       Edje_File *edf;
-       
-       edf = evas_list_last(_edje_file_cache)->data;
-       _edje_file_cache = evas_list_remove_list(_edje_file_cache, 
evas_list_last(_edje_file_cache));
-       _edje_file_free(edf);
-       count = evas_list_count(_edje_file_cache);
-     }
-}
-
-static void
-_edje_file_cache_add(Edje_File *edf)
-{
-   _edje_file_hash = evas_hash_del(_edje_file_hash, edf->path, edf);
-   _edje_file_cache  = evas_list_prepend(_edje_file_cache, edf);
-   _edje_file_cache_clean();
-}
-
-static void
-_edje_file_unref(Edje_File *edf)
-{
-   edf->references--;
-   if (edf->references == 0) _edje_file_cache_add(edf);
-}
-
-static void
-_edje_file_ref(Edje_File *edf)
-{
-   if (edf->references == 0)
-     {
-       _edje_file_cache = evas_list_remove(_edje_file_cache, edf);
-       _edje_file_hash = evas_hash_add(_edje_file_hash, edf->path, edf);
-     }
-   edf->references++;
-}
-
-static void
-_edje_file_cleanup(void)
-{
-   int ps;
-   
-   ps = _edje_file_cache_size;
-   _edje_file_cache_size = 0;
-   _edje_file_cache_clean();
-   _edje_file_cache_size = ps;
-}
-
-
-
-
-static Edje_Part_Collection *
-_edje_collection_find(Edje_File *edf, char *part)
-{
-   Evas_List *l;
-   Edje_Part_Collection *coll = NULL;
-   
-   coll = evas_hash_find(edf->collection_hash, part);
-   if (coll)
-     {
-       coll->references++;
-       return coll;
-     }
-   for (l = edf->collection_cache; l; l = l->next)
-     {
-       coll = l->data;
-
-       if (!strcmp(coll->part, part))
-         {
-            coll->references = 1;
-            edf->collection_cache = 
evas_list_remove_list(edf->collection_cache, l);
-            edf->collection_hash = evas_hash_add(edf->collection_hash, part, 
coll);
-            return coll;
-         }
-     }
-   return NULL;
-}
-
-static void
-_edje_collection_cache_clean(Edje_File *edf)
-{
-   int count;
-   
-   count = evas_list_count(edf->collection_cache);
-   while ((edf->collection_cache) && (count > _edje_collection_cache_size))
-     {
-       Edje_Part_Collection *coll;
-       
-       coll = 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, coll);
-       count = evas_list_count(edf->collection_cache);
-     }
-}
-
-static void
-_edje_collection_cache_add(Edje_File *edf, Edje_Part_Collection *coll)
-{
-   edf->collection_hash = evas_hash_del(edf->collection_hash, coll->part, 
coll);
-   edf->collection_cache = evas_list_prepend(edf->collection_cache, coll);
-   _edje_collection_cache_clean(edf);
-}
-
-static void
-_edje_collection_unref(Edje_File *edf, Edje_Part_Collection *coll)
-{
-   coll->references--;
-   if (coll->references == 0) _edje_collection_cache_add(edf, coll);
-}
-
-static void
-_edje_collection_cleanup(Edje_File *edf)
-{
-   int ps;
-   
-   ps = _edje_collection_cache_size;
-   _edje_collection_cache_size = 0;
-   _edje_collection_cache_clean(edf);
-   _edje_collection_cache_size = ps;
-}
-
-static int
-_edje_font_is_embedded(Edje_File *edf, char *font)
-{
-   Evas_List *l;
-   
-   if (!edf->font_dir) return 0;
-   for (l = edf->font_dir->entries; l; l = l->next)
-     {
-       Edje_Font_Directory_Entry *fnt = l->data;
-       
-       if ((fnt->entry) && (!strcmp(fnt->entry, font)))
-         return 1;
-     }
-   return 1;
-}
-
-static char *
-_edje_str_deescape(char *str)
-{
-   char *s2, *s, *d;
-   
-   s2 = malloc(strlen(str) + 1);
-   if (!s2) return NULL;
-   for (s = str, d = s2; *s != 0; s++, d++)
-     {
-       if ((*s == '\\') && (s[1] != 0)) s++;
-       *d = *s;
-     }
-   *d = 0;
-   return s2;
-}
-
-static char *
-_edje_str_escape(char *str)
-{
-   char *s2, *s, *d;
-   
-   s2 = malloc((strlen(str) * 2) + 1);
-   if (!s2) return NULL;
-   for (s = str, d = s2; *s != 0; s++, d++)
-     {
-       if ((*s == ' ') || (*s == '\\') || (*s == '\''))
-         {
-            *d = '\\';
-            d++;
-         }
-       *d = *s;
-     }
-   *d = 0;
-   return s2;
-}
-
-static void
-_edje_format_param_parse(char *item, char **key, char **val)
-{
-   char *p, *pv;
-   char *k, *v;
-   
-   p = strchr(item, '=');
-   k = malloc(p - item + 1);
-   strncpy(k, item, p - item);
-   k[p - item] = 0;
-   *key = k;
-   p++;
-   v = strdup(p);
-   *val = v;
-}
-
-static char *
-_edje_format_parse(char **s)
-{
-   char *p, *item, *ss, *ds;
-   char *s1 = NULL, *s2 = NULL;
-   
-   p = *s;
-   if (*p == 0) return NULL;
-   for (;;)
-     {
-       if (!s1)
-         {
-            if (*p != ' ') s1 = p;
-            if (*p == 0) break;
-         }
-       else if (!s2)
-         {
-            if ((p > *s) && (p[-1] != '\\'))
-              {
-                 if (*p == ' ') s2 = p;
-              }
-            if (*p == 0) s2 = p;
-         }
-       p++;
-       if (s1 && s2)
-         {
-            item = malloc(s2 - s1 + 1);
-            if (item)
-              {
-                 ds = item;
-                 for (ds = item, ss = s1; ss < s2; ss++, ds++)
-                   {
-                      if ((*ss == '\\') && (ss < (s2 - 1))) ss++;
-                      *ds = *ss;
-                   }
-                 *ds = 0;
-              }
-            *s = s2;
-            return item;
-         }
-     }
-   *s = p;
-   return NULL;
-}
-
-static int
-_edje_format_is_param(char *item)
-{
-   if (strchr(item, '=')) return 1;
-   return 0;
-}
-
-static char *
-_edje_strbuf_append(char *s, char *s2, int *len, int *alloc)
-{
-   int l2;
-   int tlen;
-   
-   if (!s2) return s;
-   l2 = strlen(s2);
-   tlen = *len + l2;
-   if (tlen > *alloc)
-     {
-       char *ts;
-       int talloc;
-       
-       talloc = ((tlen + 31) >> 5) << 5;
-       ts = realloc(s, talloc + 1);
-       if (!ts) return s;
-       s = ts;
-       *alloc = talloc;
-     }   
-   strcpy(s + *len, s2);
-   *len = tlen;
-   return s;
-}
-
-static char *
-_edje_format_reparse(Edje_File *edf, char *str)
-{
-   char *s, *s2;
-   char *item;
-   char *newstr = NULL;
-   int newlen = 0, newalloc = 0;
-   
-   s = str;
-   while ((item = _edje_format_parse(&s)))
-     {
-       if (_edje_format_is_param(item))
-         {
-            char *key = NULL, *val = NULL;
-            
-            _edje_format_param_parse(item, &key, &val);
-            if (!strcmp(key, "font_source"))
-              {
-                 /* dont allow font sources */
-              }
-            else if (!strcmp(key, "font"))
-              {
-                 if (_edje_font_is_embedded(edf, val))
-                   {
-                      if (newstr) newstr = _edje_strbuf_append(newstr, " ", 
&newlen, &newalloc);
-                      newstr = _edje_strbuf_append(newstr, key, &newlen, 
&newalloc);
-                      newstr = _edje_strbuf_append(newstr, "=fonts/", &newlen, 
&newalloc);
-                      s2 = _edje_str_escape(val);
-                      if (s2)
-                        {
-                           newstr = _edje_strbuf_append(newstr, s2, &newlen, 
&newalloc);
-                           free(s2);
-                        }
-                   }
-                 else
-                   {
-                      s2 = _edje_str_escape(item);
-                      if (s2)
-                        {
-                           if (newstr) newstr = _edje_strbuf_append(newstr, " 
", &newlen, &newalloc);
-                           newstr = _edje_strbuf_append(newstr, s2, &newlen, 
&newalloc);
-                           free(s2);
-                        }
-                   }
-              }
-            else
-              {
-                 s2 = _edje_str_escape(item);
-                 if (s2)
-                   {
-                      if (newstr) newstr = _edje_strbuf_append(newstr, " ", 
&newlen, &newalloc);
-                      newstr = _edje_strbuf_append(newstr, s2, &newlen, 
&newalloc);
-                      free(s2);
-                   }
-              }
-            free(key);
-            free(val);
-         }
-       else
-         {
-            if (newstr) newstr = _edje_strbuf_append(newstr, " ", &newlen, 
&newalloc);
-            newstr = _edje_strbuf_append(newstr, item, &newlen, &newalloc);
-         }
-       free(item);
-     }
-   return newstr;
-}
-
-void
 _edje_file_add(Edje *ed)
 {
-   Eet_File *ef = NULL;
-   Evas_List *l, *ll;
-   int id = -1;
-
-   if (_edje_edd_edje_file == NULL)
-     return;
-
-   ed->file = evas_hash_find(_edje_file_hash, ed->path);
-   if (ed->file)
-     _edje_file_ref(ed->file);
-   else
-     {
-       ed->file = _edje_file_cache_find(ed->path);
-       if (!ed->file)
-         {
-            ef = eet_open(ed->path, EET_FILE_MODE_READ);
-            if (!ef)
-              {
-                 ed->load_error = EDJE_LOAD_ERROR_UNKNOWN_FORMAT;
-                 return;
-              }
-            
-            ed->file = eet_data_read(ef, _edje_edd_edje_file, "edje_file");
-            if (!ed->file)
-              {
-                 ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE;
-                 goto out;
-              }
-            
-            if (ed->file->version != EDJE_FILE_VERSION)
-              {
-                 _edje_file_free(ed->file);
-                 ed->file = NULL;
-                 ed->load_error = EDJE_LOAD_ERROR_INCOMPATIBLE_FILE;
-                 goto out;
-              }
-            
-            ed->file->references = 1;   
-            ed->file->path = strdup(ed->path);
-            if (!ed->file->collection_dir)
-              {
-                 _edje_file_free(ed->file);
-                 ed->file = NULL;
-                 ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE;
-                 goto out;
-              }
-            _edje_file_hash = evas_hash_add(_edje_file_hash, ed->file->path, 
ed->file);
-         }
-     }
-
-   for (l = ed->file->styles; l; l = l->next)
-     {
-       Edje_Style *stl;
-       Edje_Style_Tag *tag;
-       char *buf = NULL;
-       int len = 0;
-       int def_done;
-       char *fontset = NULL, *fontsource = NULL, *ts;
-       
-       stl = l->data;
-       if (stl->style) break;
-       stl->style = evas_textblock2_style_new();
-       evas_textblock2_style_set(stl->style, (const char *)buf);
-       def_done = 0;
-       /* FIXME: i think we have no choice by to parse the style line,
-        * look for font= tags and IF that font is in the .edj then prepend
-        * a "fonts/" to it to it's found
-        */
-       if (_edje_fontset_append)
-         fontset = _edje_str_escape(_edje_fontset_append);
-       fontsource = _edje_str_escape(ed->path);
-         
-       for (ll = stl->tags; ll; ll = ll->next)
-         {
-            tag = ll->data;
-            len += strlen(tag->key);
-            len += 1;
-            len += 1;
-
-            ts = _edje_format_reparse(ed->file, tag->value);
-            if (ts)
-              {
-                 len += strlen(ts);
-                 free(ts);
-                 len += 1;
-              }
-         }
-       
-       if (fontset)
-         {
-            len += 1 + strlen("font_fallbacks=") + strlen(fontset);
-         }
-       len += 1 + strlen("font_source=") + strlen(ed->path);
-       buf = malloc(len + 1);
-       buf[0] = 0;
-       for (ll = stl->tags; ll; ll = ll->next)
-         {
-            tag = ll->data;
-            strcat(buf, tag->key);
-            strcat(buf, "='");
-            ts = _edje_format_reparse(ed->file, tag->value);
-            if (ts)
-              {
-                 strcat(buf, ts);
-                 free(ts);
-              }
-            if ((!def_done) && (!strcmp(tag->key, "DEFAULT")))
-              {
-                 if (fontset)
-                   {
-                      strcat(buf, " ");
-                      strcat(buf, "font_fallbacks=");
-                      strcat(buf, fontset);
-                   }
-                 strcat(buf, " ");
-                 strcat(buf, "font_source=");
-                 strcat(buf, fontsource);
-                 def_done = 1;
-              }
-            strcat(buf, "'");
-         }
-       if (fontset) free(fontset);
-       if (fontsource) free(fontsource);
-       evas_textblock2_style_set(stl->style, (const char *)buf);
-       free(buf);
-     }
-   
-   ed->collection = _edje_collection_find(ed->file, ed->part);
+   if (_edje_edd_edje_file == NULL) return;
+   ed->file = _edje_cache_file_coll_open(ed->path, ed->part, 
+                                        &(ed->load_error), 
+                                        &(ed->collection));
    if (!ed->collection)
      {
-       for (l = ed->file->collection_dir->entries; l; l = l->next)
+       if (ed->file)
          {
-            Edje_Part_Collection_Directory_Entry *ce;
-            
-            ce = l->data;
-            if ((ce->entry) && (!strcmp(ce->entry, ed->part)))
-              {
-                 id = ce->id;
-                 break;
-              }
-         }
-       if (id >= 0)
-         {
-            char buf[256];
-            int  size;
-            void *data;
-            
-            snprintf(buf, sizeof(buf), "collections/%i", id);
-            if (!ef) ef = eet_open(ed->path, EET_FILE_MODE_READ);
-            if (!ef)
-              {
-                 _edje_file_unref(ed->file);
-                 ed->file = NULL;
-                 ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE;
-                 goto out;
-              }
-            ed->collection = eet_data_read(ef, 
-                                           _edje_edd_edje_part_collection, 
-                                           buf);
-            if (!ed->collection)
-              {
-                 _edje_file_unref(ed->file);
-                 ed->file = NULL;
-                 ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE;
-                 goto out;
-              }
-//          printf("OPEN COLL %s\n", ed->part);
-            
-            snprintf(buf, sizeof(buf), "scripts/%i", id);
-            data = eet_read(ef, buf, &size);
-            if (data)
-              {
-                 ed->collection->script = embryo_program_new(data, size);
-                 free(data);
-              }
-            
-            ed->collection->part = strdup(ed->part);
-            ed->collection->references = 1;
-            ed->file->collection_hash = 
evas_hash_add(ed->file->collection_hash, ed->part, ed->collection);
-         }
-       else
-         {
-            _edje_file_unref(ed->file);
+            _edje_cache_file_unref(ed->file);
             ed->file = NULL;
-            ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE;          
          }
      }
-   out:
-   if (ef) eet_close(ef);
 }
 
 void
@@ -1143,12 +483,12 @@
             _edje_text_part_on_del(ed, ep);
             _edje_color_class_on_del(ed, ep);
          }
-       _edje_collection_unref(ed->file, ed->collection);
+       _edje_cache_coll_unref(ed->file, ed->collection);
        ed->collection = NULL;
      }
    if (ed->file)
      {
-       _edje_file_unref(ed->file);
+       _edje_cache_file_unref(ed->file);
        ed->file = NULL;
      }
    if (ed->parts)
@@ -1316,38 +656,12 @@
      }
    if (edf->path) free(edf->path);
    if (edf->compiler) free(edf->compiler);
-   if (edf->collection_cache)
-     _edje_collection_cleanup(edf);
-   while (edf->styles)
-     {
-       Edje_Style *stl;
-       
-       stl = edf->styles->data;
-       edf->styles = evas_list_remove_list(edf->styles, edf->styles);
-       while (stl->tags)
-         {
-            Edje_Style_Tag *tag;
-            
-            tag = stl->tags->data;
-            stl->tags = evas_list_remove_list(stl->tags, stl->tags);
-            if (tag->key) free(tag->key);
-            if (tag->value) free(tag->value);
-            free(tag);
-         }
-       if (stl->name) free(stl->name);
-       if (stl->style) evas_textblock2_style_free(stl->style);
-       free(stl);
-     }
+   if (edf->collection_cache) _edje_cache_coll_clean(edf);
+   _edje_textblock_style_cleanup(edf);
    free(edf);
 }
 
 void
-_edje_file_cache_shutdown(void)
-{
-   _edje_file_cleanup();
-}
-
-void
 _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
 {
    while (ec->programs)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -3 -r1.92 -r1.93
--- edje_private.h      21 Sep 2005 03:11:31 -0000      1.92
+++ edje_private.h      5 Oct 2005 08:38:04 -0000       1.93
@@ -914,5 +914,12 @@
 void          _edje_message_queue_process   (void);
 void          _edje_message_queue_clear     (void);
 void          _edje_message_del             (Edje *ed);
-    
+
+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_unref(Edje_File *edf, Edje_Part_Collection *edc);
+void _edje_cache_file_unref(Edje_File *edf);
+
 #endif




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to