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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs