make more use of stringshare and eet alloc methods
SVN revision: 18732
This commit is contained in:
parent
f8dd4d1af7
commit
bd0c83af10
|
@ -20,14 +20,7 @@ Eet_Data_Descriptor *_edje_edd_edje_part_description = NULL;
|
|||
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 @@ _edje_edd_free(void)
|
|||
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 @@ _edje_edd_setup(void)
|
|||
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 @@ _edje_edd_setup(void)
|
|||
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 @@ _edje_edd_setup(void)
|
|||
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 @@ _edje_edd_setup(void)
|
|||
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);
|
||||
|
|
|
@ -402,7 +402,7 @@ edje_file_collection_list(const char *file)
|
|||
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 @@ edje_file_collection_list_free(Evas_List *lst)
|
|||
{
|
||||
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 @@ _edje_file_del(Edje *ed)
|
|||
/* 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 @@ _edje_file_free(Edje_File *edf)
|
|||
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 @@ _edje_file_free(Edje_File *edf)
|
|||
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 @@ _edje_file_free(Edje_File *edf)
|
|||
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 @@ _edje_file_free(Edje_File *edf)
|
|||
|
||||
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 @@ _edje_file_free(Edje_File *edf)
|
|||
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 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
|
|||
|
||||
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 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
|
|||
|
||||
pa = pr->after->data;
|
||||
pr->after = evas_list_remove(pr->after, pa);
|
||||
free(pa);
|
||||
free(pa);
|
||||
}
|
||||
free(pr);
|
||||
}
|
||||
|
@ -712,7 +712,7 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
|
|||
|
||||
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 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
|
|||
|
||||
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 @@ _edje_collection_free(Edje_File *edf, Edje_Part_Collection *ec)
|
|||
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 @@ _edje_collection_free_part_description_free(Edje_Part_Description *desc)
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -112,8 +112,8 @@ _edje_del(Edje *ed)
|
|||
|
||||
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)
|
||||
|
|
|
@ -242,8 +242,8 @@ _edje_message_free(Edje_Message *em)
|
|||
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 @@ _edje_message_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, v
|
|||
|
||||
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;
|
||||
|
|
|
@ -55,9 +55,9 @@ edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const ch
|
|||
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 @@ edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const ch
|
|||
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 @@ _edje_emit_handle(Edje *ed, char *sig, char *src)
|
|||
#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_emit_handle(Edje *ed, char *sig, char *src)
|
|||
_edje_program_run(ed, pr, 0, sig, src);
|
||||
if (_edje_block_break(ed))
|
||||
{
|
||||
if (tmps) free(tmps);
|
||||
goto break_prog;
|
||||
}
|
||||
}
|
||||
|
@ -825,7 +819,6 @@ _edje_emit_handle(Edje *ed, char *sig, char *src)
|
|||
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_handle(Edje *ed, char *sig, char *src)
|
|||
_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 @@ _edje_emit_cb(Edje *ed, char *sig, char *src)
|
|||
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;
|
||||
|
|
|
@ -65,14 +65,14 @@ _edje_text_part_on_del(Edje *ed, Edje_Part *pt)
|
|||
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 @@ _edje_text_part_on_del(Edje *ed, Edje_Part *pt)
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -512,8 +512,8 @@ edje_object_part_text_set(Evas_Object *obj, const char *part, const char *text)
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue