summaryrefslogtreecommitdiff
path: root/legacy/edje/src/lib/edje_load.c
diff options
context:
space:
mode:
Diffstat (limited to 'legacy/edje/src/lib/edje_load.c')
-rw-r--r--legacy/edje/src/lib/edje_load.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c
index 0b36148..33bef23 100644
--- a/legacy/edje/src/lib/edje_load.c
+++ b/legacy/edje/src/lib/edje_load.c
@@ -432,7 +432,7 @@ _edje_file_del(Edje *ed)
432 if (ed->collection->references <= 0) 432 if (ed->collection->references <= 0)
433 { 433 {
434 ed->file->collection_hash = evas_hash_del(ed->file->collection_hash, ed->part, ed->collection); 434 ed->file->collection_hash = evas_hash_del(ed->file->collection_hash, ed->part, ed->collection);
435 _edje_collection_free(ed->collection); 435 _edje_collection_free(ed, ed->collection);
436 } 436 }
437 ed->collection = NULL; 437 ed->collection = NULL;
438 } 438 }
@@ -446,7 +446,7 @@ _edje_file_del(Edje *ed)
446 while (ed->parts) 446 while (ed->parts)
447 { 447 {
448 Edje_Real_Part *rp; 448 Edje_Real_Part *rp;
449 449
450 rp = ed->parts->data; 450 rp = ed->parts->data;
451 ed->parts = evas_list_remove(ed->parts, rp); 451 ed->parts = evas_list_remove(ed->parts, rp);
452 evas_object_event_callback_del(rp->object, 452 evas_object_event_callback_del(rp->object,
@@ -467,8 +467,7 @@ _edje_file_del(Edje *ed)
467 evas_object_event_callback_del(rp->object, 467 evas_object_event_callback_del(rp->object,
468 EVAS_CALLBACK_MOUSE_WHEEL, 468 EVAS_CALLBACK_MOUSE_WHEEL,
469 _edje_mouse_wheel_cb); 469 _edje_mouse_wheel_cb);
470 _edje_text_part_on_del(ed, rp); 470 _edje_text_real_part_on_del(ed, rp);
471 _edje_color_class_on_del(ed, rp);
472 evas_object_del(rp->object); 471 evas_object_del(rp->object);
473 if (rp->swallowed_object) 472 if (rp->swallowed_object)
474 { 473 {
@@ -554,12 +553,12 @@ _edje_file_free(Edje_File *edf)
554} 553}
555 554
556void 555void
557_edje_collection_free(Edje_Part_Collection *ec) 556_edje_collection_free(Edje *ed, Edje_Part_Collection *ec)
558{ 557{
559 while (ec->programs) 558 while (ec->programs)
560 { 559 {
561 Edje_Program *pr; 560 Edje_Program *pr;
562 561
563 pr = ec->programs->data; 562 pr = ec->programs->data;
564 ec->programs = evas_list_remove(ec->programs, pr); 563 ec->programs = evas_list_remove(ec->programs, pr);
565 if (pr->name) free(pr->name); 564 if (pr->name) free(pr->name);
@@ -580,11 +579,17 @@ _edje_collection_free(Edje_Part_Collection *ec)
580 while (ec->parts) 579 while (ec->parts)
581 { 580 {
582 Edje_Part *ep; 581 Edje_Part *ep;
583 582
584 ep = ec->parts->data; 583 ep = ec->parts->data;
585 ec->parts = evas_list_remove(ec->parts, ep); 584 ec->parts = evas_list_remove(ec->parts, ep);
585 _edje_text_part_on_del(ed, ep);
586 _edje_color_class_on_del(ed, ep);
586 if (ep->name) free(ep->name); 587 if (ep->name) free(ep->name);
587 if (ep->default_desc) _edje_collection_free_part_description_free(ep->default_desc); 588 if (ep->default_desc)
589 {
590 _edje_collection_free_part_description_free(ep->default_desc);
591 ep->default_desc = NULL;
592 }
588 while (ep->other_desc) 593 while (ep->other_desc)
589 { 594 {
590 Edje_Part_Description *desc; 595 Edje_Part_Description *desc;