Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_data.c edje_load.c edje_main.c edje_message_queue.c 
        edje_program.c edje_text.c edje_util.c 


Log Message:


make more use of stringshare and eet alloc methods

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_data.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- edje_data.c 6 Nov 2005 03:32:01 -0000       1.26
+++ edje_data.c 30 Nov 2005 15:36:34 -0000      1.27
@@ -20,14 +20,7 @@
 Eet_Data_Descriptor *_edje_edd_edje_part_image_id = NULL;
 
 #define NEWD(str, typ) \
-   eet_data_descriptor_new(str, sizeof(typ), \
-                             (void *(*) (void *))evas_list_next, \
-                             (void *(*) (void *, void *))evas_list_append, \
-                             (void *(*) (void *))evas_list_data, \
-                             (void *(*) (void *))evas_list_free, \
-                             (void  (*) (void *, int (*) (void *, const char 
*, void *, void *), void *))evas_hash_foreach, \
-                             (void *(*) (void *, const char *, void 
*))evas_hash_add, \
-                             (void  (*) (void *))evas_hash_free)
+   { eddc.name = str; eddc.size = sizeof(typ); }
 
 #define FREED(eed) \
    if (eed) \
@@ -61,66 +54,91 @@
 void
 _edje_edd_setup(void)
 {
+   Eet_Data_Descriptor_Class eddc;
+   
+   eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION;
+   eddc.func.mem_alloc = NULL;
+   eddc.func.mem_free = NULL;
+   eddc.func.str_alloc = evas_stringshare_add;
+   eddc.func.str_free = evas_stringshare_del;
+   eddc.func.list_next = evas_list_next;
+   eddc.func.list_append = evas_list_append;
+   eddc.func.list_data = evas_list_data;
+   eddc.func.list_free = evas_list_free;
+   eddc.func.hash_foreach = evas_hash_foreach;
+   eddc.func.hash_add = evas_hash_add;
+   eddc.func.hash_free = evas_hash_free;
+
    /* font directory */
+   NEWD("Edje_Font_Directory_Entry", 
+       Edje_Font_Directory_Entry);
    _edje_edd_edje_font_directory_entry = 
-    NEWD("Edje_Font_Directory_Entry", 
-        Edje_Font_Directory_Entry);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_font_directory_entry, 
Edje_Font_Directory_Entry, "entry", entry, EET_T_STRING);
    
+   NEWD("Edje_Font_Directory", 
+       Edje_Font_Directory);
    _edje_edd_edje_font_directory = 
-     NEWD("Edje_Font_Directory", 
-         Edje_Font_Directory);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_font_directory, 
Edje_Font_Directory, "entries", entries, _edje_edd_edje_font_directory_entry);
 
    /* image directory */
+   NEWD("Edje_Image_Directory_Entry", 
+       Edje_Image_Directory_Entry);
    _edje_edd_edje_image_directory_entry = 
-    NEWD("Edje_Image_Directory_Entry", 
-        Edje_Image_Directory_Entry);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, 
Edje_Image_Directory_Entry, "entry", entry, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, 
Edje_Image_Directory_Entry, "source_type", source_type, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, 
Edje_Image_Directory_Entry, "source_param", source_param, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, 
Edje_Image_Directory_Entry, "id", id, EET_T_INT);
    
+   NEWD("Edje_Image_Directory", 
+       Edje_Image_Directory);
    _edje_edd_edje_image_directory = 
-     NEWD("Edje_Image_Directory", 
-         Edje_Image_Directory);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_image_directory, 
Edje_Image_Directory, "entries", entries, _edje_edd_edje_image_directory_entry);
 
    /* collection directory */
+   NEWD("Edje_Part_Collection_Directory_Entry",
+       Edje_Part_Collection_Directory_Entry);
    _edje_edd_edje_part_collection_directory_entry = 
-     NEWD("Edje_Part_Collection_Directory_Entry",
-         Edje_Part_Collection_Directory_Entry);
+     eet_data_descriptor2_new(&eddc);
    
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, 
Edje_Part_Collection_Directory_Entry, "entry", entry, EET_T_STRING);
    
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, 
Edje_Part_Collection_Directory_Entry, "id", id, EET_T_INT);
    
+   NEWD("Edje_Part_Collection_Directory",
+       Edje_Part_Collection_Directory);
    _edje_edd_edje_part_collection_directory = 
-     NEWD("Edje_Part_Collection_Directory",
-         Edje_Part_Collection_Directory);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection_directory, 
Edje_Part_Collection_Directory, "entries", entries, 
_edje_edd_edje_part_collection_directory_entry);
 
    /* generic data attachment */
+   NEWD("Edje_Data",
+       Edje_Data);
    _edje_edd_edje_data =
-     NEWD("Edje_Data",
-         Edje_Data);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_data, Edje_Data, "key", key, 
EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_data, Edje_Data, "value", 
value, EET_T_STRING);
    
+   NEWD("Edje_Style_Tag", 
+       Edje_Style_Tag);
    _edje_edd_edje_style_tag = 
-     NEWD("Edje_Style_Tag", 
-         Edje_Style_Tag);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_style_tag, Edje_Style_Tag, 
"key", key, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_style_tag, Edje_Style_Tag, 
"value", value, EET_T_STRING);
    
+   NEWD("Edje_Style", 
+       Edje_Style);
    _edje_edd_edje_style = 
-     NEWD("Edje_Style", 
-         Edje_Style);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_style, Edje_Style, "name", 
name, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_style, Edje_Style, "tags", 
tags, _edje_edd_edje_style_tag);
    
    /* the main file directory */
+   NEWD("Edje_File", 
+       Edje_File);
    _edje_edd_edje_file = 
-     NEWD("Edje_File", 
-         Edje_File);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "compiler", 
compiler, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "version", 
version, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, 
"feature_ver", feature_ver, EET_T_INT);
@@ -131,19 +149,23 @@
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_file, Edje_File, "styles", 
styles, _edje_edd_edje_style);
 
    /* parts & programs - loaded induvidually */
+   NEWD("Edje_Program_Target",
+       Edje_Program_Target);
    _edje_edd_edje_program_target = 
-     NEWD("Edje_Program_Target",
-         Edje_Program_Target);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program_target, 
Edje_Program_Target, "id", id, EET_T_INT);
 
+   NEWD("Edje_Program_After",
+       Edje_Program_After);
    _edje_edd_edje_program_after =
-     NEWD("Edje_Program_After", Edje_Program_After);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program_after,
                                  Edje_Program_After, "id", id, EET_T_INT);
 
+   NEWD("Edje_Program",
+       Edje_Program);
    _edje_edd_edje_program = 
-     NEWD("Edje_Program",
-         Edje_Program);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "id", 
id, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "name", 
name, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, 
"signal", signal, EET_T_STRING);
@@ -160,14 +182,16 @@
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_program, Edje_Program, 
"targets", targets, _edje_edd_edje_program_target);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_program, Edje_Program, "after", 
after, _edje_edd_edje_program_after);
 
+   NEWD("Edje_Part_Image_Id",
+       Edje_Part_Image_Id);
    _edje_edd_edje_part_image_id = 
-     NEWD("Edje_Part_Image_Id",
-         Edje_Part_Image_Id);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_image_id, 
Edje_Part_Image_Id, "id", id, EET_T_INT);
    
+   NEWD("Edje_Part_Description",
+       Edje_Part_Description);
    _edje_edd_edje_part_description = 
-     NEWD("Edje_Part_Description",
-         Edje_Part_Description);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, 
Edje_Part_Description, "state.name", state.name, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, 
Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, 
Edje_Part_Description, "visible", visible, EET_T_CHAR);
@@ -240,9 +264,10 @@
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, 
Edje_Part_Description, "text.id_text_source", text.id_text_source, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, 
Edje_Part_Description, "text.elipsis", text.elipsis, EET_T_DOUBLE);
    
+   NEWD("Edje_Part",
+       Edje_Part);
    _edje_edd_edje_part = 
-     NEWD("Edje_Part",
-         Edje_Part);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "name", name, 
EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "id", id, 
EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "type", type, 
EET_T_CHAR);
@@ -261,9 +286,10 @@
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, 
"dragable.counfine_id", dragable.confine_id, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, 
"dragable.events_id", dragable.events_id, EET_T_INT);
    
+   NEWD("Edje_Part_Collection", 
+       Edje_Part_Collection);
    _edje_edd_edje_part_collection  = 
-     NEWD("Edje_Part_Collection", 
-         Edje_Part_Collection);
+     eet_data_descriptor2_new(&eddc);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, 
Edje_Part_Collection, "programs", programs, _edje_edd_edje_program);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, 
Edje_Part_Collection, "parts", parts, _edje_edd_edje_part);
    EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, 
Edje_Part_Collection, "data", data, _edje_edd_edje_data);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -3 -r1.79 -r1.80
--- edje_load.c 30 Nov 2005 09:56:14 -0000      1.79
+++ edje_load.c 30 Nov 2005 15:36:34 -0000      1.80
@@ -402,7 +402,7 @@
                  Edje_Part_Collection_Directory_Entry *ce;
             
                  ce = l->data;
-                 lst = evas_list_append(lst, strdup(ce->entry));
+                 lst = evas_list_append(lst, evas_stringshare_add(ce->entry));
               }
          }
        _edje_cache_file_unref(edf);   
@@ -421,7 +421,7 @@
 {
    while (lst)
      {
-       if (lst->data) free(lst->data);
+       if (lst->data) evas_stringshare_del(lst->data);
        lst = evas_list_remove(lst, lst->data);
      }
 }
@@ -546,8 +546,8 @@
 /* I think it would be better swallowed objects dont get deleted */
 /*               evas_object_del(rp->swallowed_object);*/
               }
-            if (rp->text.text) free(rp->text.text);
-            if (rp->text.font) free(rp->text.font);
+            if (rp->text.text) evas_stringshare_del(rp->text.text);
+            if (rp->text.font) evas_stringshare_del(rp->text.font);
             if (rp->text.cache.in_str) 
evas_stringshare_del(rp->text.cache.in_str);
             if (rp->text.cache.out_str) 
evas_stringshare_del(rp->text.cache.out_str);       
 
@@ -605,7 +605,7 @@
             fe = edf->font_dir->entries->data;
             edf->font_dir->entries = 
               evas_list_remove(edf->font_dir->entries, fe);
-            if (fe->entry) free(fe->entry);
+            if (fe->entry) evas_stringshare_del(fe->entry);
             free(fe);
          }
        free(edf->font_dir);
@@ -619,7 +619,7 @@
             ie = edf->image_dir->entries->data;
             edf->image_dir->entries = 
               evas_list_remove(edf->image_dir->entries, ie);
-            if (ie->entry) free(ie->entry);
+            if (ie->entry) evas_stringshare_del(ie->entry);
             free(ie);
          }
        free(edf->image_dir);
@@ -633,7 +633,7 @@
             ce = edf->collection_dir->entries->data;
             edf->collection_dir->entries = 
               evas_list_remove(edf->collection_dir->entries, ce);
-            if (ce->entry) free(ce->entry);
+            if (ce->entry) evas_stringshare_del(ce->entry);
             free(ce);
          }
        free(edf->collection_dir);
@@ -646,8 +646,8 @@
             
             edt = edf->data->data;
             edf->data = evas_list_remove(edf->data, edt);
-            if (edt->key) free(edt->key);
-            if (edt->value) free(edt->value);
+            if (edt->key) evas_stringshare_del(edt->key);
+            if (edt->value) evas_stringshare_del(edt->value);
             free(edt);
          }
      }
@@ -668,7 +668,7 @@
        evas_hash_free(edf->collection_hash);
      }
    if (edf->path) evas_stringshare_del(edf->path);
-   if (edf->compiler) free(edf->compiler);
+   if (edf->compiler) evas_stringshare_del(edf->compiler);
    if (edf->collection_cache) _edje_cache_coll_flush(edf);
    _edje_textblock_style_cleanup(edf);
    free(edf);
@@ -683,11 +683,11 @@
 
        pr = ec->programs->data;
        ec->programs = evas_list_remove(ec->programs, pr);
-       if (pr->name) free(pr->name);
-       if (pr->signal) free(pr->signal);
-       if (pr->source) free(pr->source);
-       if (pr->state) free(pr->state);
-       if (pr->state2) free(pr->state2);
+       if (pr->name) evas_stringshare_del(pr->name);
+       if (pr->signal) evas_stringshare_del(pr->signal);
+       if (pr->source) evas_stringshare_del(pr->source);
+       if (pr->state) evas_stringshare_del(pr->state);
+       if (pr->state2) evas_stringshare_del(pr->state2);
        while (pr->targets)
          {
             Edje_Program_Target *prt;
@@ -702,7 +702,7 @@
 
             pa = pr->after->data;
             pr->after = evas_list_remove(pr->after, pa);
-                free(pa);
+            free(pa);
          }
        free(pr);
      }
@@ -712,7 +712,7 @@
 
        ep = ec->parts->data;
        ec->parts = evas_list_remove(ec->parts, ep);
-       if (ep->name) free(ep->name);
+       if (ep->name) evas_stringshare_del(ep->name);
        if (ep->default_desc)
          {
             _edje_collection_free_part_description_free(ep->default_desc);
@@ -736,8 +736,8 @@
             
             edt = ec->data->data;
             ec->data = evas_list_remove(ec->data, edt);
-            if (edt->key) free(edt->key);
-            if (edt->value) free(edt->value);
+            if (edt->key) evas_stringshare_del(edt->key);
+            if (edt->value) evas_stringshare_del(edt->value);
             free(edt);
          }
      }
@@ -759,7 +759,7 @@
 static void
 _edje_collection_free_part_description_free(Edje_Part_Description *desc)
 {
-   if (desc->state.name) free(desc->state.name);
+   if (desc->state.name) evas_stringshare_del(desc->state.name);
    while (desc->image.tween_list)
      {
        Edje_Part_Image_Id *pi;
@@ -768,11 +768,11 @@
        desc->image.tween_list = evas_list_remove(desc->image.tween_list, pi);
        free(pi);
      }
-   if (desc->color_class)     free(desc->color_class);
-   if (desc->text.text)       free(desc->text.text);
-   if (desc->text.text_class) free(desc->text.text_class);
-   if (desc->text.style)      free(desc->text.style);
-   if (desc->text.font)       free(desc->text.font);
+   if (desc->color_class)     evas_stringshare_del(desc->color_class);
+   if (desc->text.text)       evas_stringshare_del(desc->text.text);
+   if (desc->text.text_class) evas_stringshare_del(desc->text.text_class);
+   if (desc->text.style)      evas_stringshare_del(desc->text.style);
+   if (desc->text.font)       evas_stringshare_del(desc->text.font);
    free(desc);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -3 -r1.46 -r1.47
--- edje_main.c 30 Nov 2005 09:56:14 -0000      1.46
+++ edje_main.c 30 Nov 2005 15:36:34 -0000      1.47
@@ -112,8 +112,8 @@
        
        escb = ed->callbacks->data;
        ed->callbacks = evas_list_remove(ed->callbacks, escb);
-       free(escb->signal);
-       free(escb->source);
+       if (escb->signal) evas_stringshare_del(escb->signal);
+       if (escb->source) evas_stringshare_del(escb->source);
        free(escb);
      }
    while (ed->color_classes)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_message_queue.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- edje_message_queue.c        24 Nov 2005 03:23:01 -0000      1.20
+++ edje_message_queue.c        30 Nov 2005 15:36:34 -0000      1.21
@@ -242,8 +242,8 @@
                  Edje_Message_Signal *emsg;
                  
                  emsg = (Edje_Message_Signal *)em->msg;
-                 if (emsg->sig) free(emsg->sig);
-                 if (emsg->src) free(emsg->src);
+                 if (emsg->sig) evas_stringshare_del(emsg->sig);
+                 if (emsg->src) evas_stringshare_del(emsg->src);
                  free(emsg);
               }
             break;
@@ -293,8 +293,8 @@
             
             emsg2 = (Edje_Message_Signal *)emsg;
             emsg3 = calloc(1, sizeof(Edje_Message_Signal));
-            if (emsg2->sig) emsg3->sig = strdup(emsg2->sig);
-            if (emsg2->src) emsg3->src = strdup(emsg2->src);
+            if (emsg2->sig) emsg3->sig = evas_stringshare_add(emsg2->sig);
+            if (emsg2->src) emsg3->src = evas_stringshare_add(emsg2->src);
             msg = (unsigned char *)emsg3;
          }
        break;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_program.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -3 -r1.47 -r1.48
--- edje_program.c      23 Nov 2005 14:47:36 -0000      1.47
+++ edje_program.c      30 Nov 2005 15:36:34 -0000      1.48
@@ -55,9 +55,9 @@
    if (ed->delete_me) return;
    escb = calloc(1, sizeof(Edje_Signal_Callback));
    if ((emission) && (emission[0]))
-     escb->signal = strdup(emission);
+     escb->signal = evas_stringshare_add(emission);
    if ((source) && (source[0]))
-     escb->source = strdup(source);
+     escb->source = evas_stringshare_add(source);
    escb->func = func;
    escb->data = data;
    ed->callbacks = evas_list_append(ed->callbacks, escb);
@@ -107,8 +107,8 @@
             else
               {
                  ed->callbacks = evas_list_remove_list(ed->callbacks, l);
-                 free(escb->signal);
-                 free(escb->source);
+                 if (escb->signal) evas_stringshare_del(escb->signal);
+                 if (escb->source) evas_stringshare_del(escb->source);
                  free(escb);
               }
             return data;
@@ -765,19 +765,14 @@
 #ifdef EDJE_PROGRAM_CACHE
        l1 = strlen(sig);
        l2 = strlen(src);
-       tmps = malloc(l1 + l2 + 2);
-       
-       if (tmps)
-         {
-            strcpy(tmps, sig);
-            tmps[l1] = '\377';
-            strcpy(&(tmps[l1 + 1]), src);
-         }
+       tmps = alloca(l1 + l2 + 2);
+       strcpy(tmps, sig);
+       tmps[l1] = '\377';
+       strcpy(&(tmps[l1 + 1]), src);
 #endif      
        done = 0;
        
 #ifdef EDJE_PROGRAM_CACHE
-       if (tmps)
          {
             Evas_List *matches;
             
@@ -795,7 +790,6 @@
                       _edje_program_run(ed, pr, 0, sig, src);
                       if (_edje_block_break(ed))
                         {
-                           if (tmps) free(tmps);
                            goto break_prog;
                         }
                    }
@@ -825,7 +819,6 @@
                       if (_edje_block_break(ed))
                         {
 #ifdef EDJE_PROGRAM_CACHE
-                           if (tmps) free(tmps);
                            evas_list_free(matches);
 #endif                          
                            goto break_prog;
@@ -850,15 +843,8 @@
        _edje_emit_cb(ed, sig, src);
        if (_edje_block_break(ed))
          {
-#ifdef EDJE_PROGRAM_CACHE
-            if (tmps) free(tmps);
-#endif           
             goto break_prog;
          }
-#ifdef EDJE_PROGRAM_CACHE
-       if (tmps) free(tmps);
-       tmps = NULL;
-#endif      
      }
    break_prog:
    _edje_thaw(ed);
@@ -906,8 +892,8 @@
             if (escb->delete_me)
               {
                  ed->callbacks = evas_list_remove_list(ed->callbacks, l);
-                 free(escb->signal);
-                 free(escb->source);
+                 if (escb->signal) evas_stringshare_del(escb->signal);
+                 if (escb->source) evas_stringshare_del(escb->source);
                  free(escb);
               }
             l = next_l;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_text.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -3 -r1.47 -r1.48
--- edje_text.c 30 Nov 2005 09:56:15 -0000      1.47
+++ edje_text.c 30 Nov 2005 15:36:34 -0000      1.48
@@ -65,14 +65,14 @@
    if ((pt->default_desc) && (pt->default_desc->text.text_class))
      {
         _edje_text_class_member_del(ed, pt->default_desc->text.text_class);
-       free(pt->default_desc->text.text_class);
+       evas_stringshare_del(pt->default_desc->text.text_class);
        pt->default_desc->text.text_class = NULL;
      }
    
    if (pt->default_desc && pt->default_desc->color_class)
      {
         _edje_color_class_member_del(ed, pt->default_desc->color_class);
-       free (pt->default_desc->color_class);
+       evas_stringshare_del(pt->default_desc->color_class);
        pt->default_desc->color_class = NULL;
      }
 
@@ -84,14 +84,14 @@
         if (desc->text.text_class)
           {
              _edje_text_class_member_del(ed, desc->text.text_class);
-             free(desc->text.text_class);
+             evas_stringshare_del(desc->text.text_class);
              desc->text.text_class = NULL;
           }
        
        if (desc->color_class)
          {
             _edje_color_class_member_del(ed, desc->color_class);
-            free(desc->color_class);
+            evas_stringshare_del(desc->color_class);
             desc->color_class = NULL;
          }
      }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -3 -r1.68 -r1.69
--- edje_util.c 30 Nov 2005 09:56:15 -0000      1.68
+++ edje_util.c 30 Nov 2005 15:36:34 -0000      1.69
@@ -512,8 +512,8 @@
    if ((rp->text.text) && (text) && 
        (!strcmp(rp->text.text, text)))
      return;
-   if (rp->text.text) free(rp->text.text);
-   if (text) rp->text.text = strdup(text);
+   if (rp->text.text) evas_stringshare_del(rp->text.text);
+   if (text) rp->text.text = evas_stringshare_add(text);
    else rp->text.text = NULL;
    ed->dirty = 1;
    _edje_recalc(ed);




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to