From: <enl...@li...> - 2005-11-30 15:36:45
|
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); |