Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje
Dir : e17/libs/edje/src/lib Modified Files: edje_main.c edje_message_queue.c edje_private.h Log Message: ug callback that deletes the object that is bing walked for callbacks... ouch.. fix. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- edje_main.c 3 Apr 2005 11:42:59 -0000 1.42 +++ edje_main.c 28 Jul 2005 13:39:23 -0000 1.43 @@ -75,6 +75,12 @@ void _edje_del(Edje *ed) { + if (ed->processing_messages) + { + ed->delete_me = 1; + return; + } + _edje_message_del(ed); _edje_file_del(ed); if (ed->path) free(ed->path); ed->path = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_message_queue.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- edje_message_queue.c 14 Jan 2005 04:50:29 -0000 1.16 +++ edje_message_queue.c 28 Jul 2005 13:39:23 -0000 1.17 @@ -592,11 +592,19 @@ while (tmp_msgq) { Edje_Message *em; + Edje *ed; em = tmp_msgq->data; + ed = em->edje; + ed->processing_messages++; tmp_msgq = evas_list_remove_list(tmp_msgq, tmp_msgq); _edje_message_process(em); _edje_message_free(em); + ed->processing_messages--; + if (ed->processing_messages == 0) + { + if (ed->delete_me) _edje_del(ed); + } } } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.86 retrieving revision 1.87 diff -u -3 -r1.86 -r1.87 --- edje_private.h 26 Jul 2005 13:59:03 -0000 1.86 +++ edje_private.h 28 Jul 2005 13:39:23 -0000 1.87 @@ -473,6 +473,7 @@ void *data; } text_change; + int processing_messages; struct { int num; void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg); ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs