diff --git a/legacy/ecore/src/lib/ecore/ecore_events.c b/legacy/ecore/src/lib/ecore/ecore_events.c index 5b3fa78b45..d58ba32a7b 100644 --- a/legacy/ecore/src/lib/ecore/ecore_events.c +++ b/legacy/ecore/src/lib/ecore/ecore_events.c @@ -340,7 +340,10 @@ _ecore_event_call(void) e = (Ecore_Event *)ll; if (!ef->func_filter(ef->loop_data, ef->data, e->type, e->event)) - ecore_event_del(e); + { +// printf("FILTER SAID TO DEL ev %p\n", e->event); + ecore_event_del(e); + } } if (ef->func_end) ef->func_end(ef->data, ef->loop_data); @@ -363,6 +366,7 @@ _ecore_event_call(void) } event_filters_delete_me = 0; } +// printf("EVENT BATCH...\n"); for (l = (Ecore_Oldlist *)events; l; l = l->next) { Ecore_Oldlist *ll; @@ -376,6 +380,7 @@ _ecore_event_call(void) handle_count = 0; ecore_raw_event_type = e->type; ecore_raw_event_event = e->event; +// printf("HANDLE ev type %i, %p\n", e->type, e->event); for (ll = (Ecore_Oldlist *)event_handlers; ll; ll = ll->next) { Ecore_Event_Handler *eh; diff --git a/legacy/ecore/src/lib/ecore_job/ecore_job.c b/legacy/ecore/src/lib/ecore_job/ecore_job.c index fc53081245..4380f6d674 100644 --- a/legacy/ecore/src/lib/ecore_job/ecore_job.c +++ b/legacy/ecore/src/lib/ecore_job/ecore_job.c @@ -4,6 +4,7 @@ #include "Ecore_Job.h" static int _ecore_job_event_handler(void *data, int type, void *ev); +static void _ecore_job_event_free(void *data, void *ev); static int ecore_event_job_type = 0; @@ -31,7 +32,7 @@ ecore_job_add(void (*func) (void *data), const void *data) job = calloc(1, sizeof(Ecore_Job)); if (!job) return NULL; ECORE_MAGIC_SET(job, ECORE_MAGIC_JOB); - job->event = ecore_event_add(ecore_event_job_type, job, NULL, NULL); + job->event = ecore_event_add(ecore_event_job_type, job, _ecore_job_event_free, NULL); if (!job->event) { free(job); @@ -74,3 +75,12 @@ _ecore_job_event_handler(void *data, int type, void *ev) job->func(job->data); return 0; } + +static void +_ecore_job_event_free(void *data, void *ev) +{ + Ecore_Job *job; + + job = ev; + free(ev); +}