From: Cedric B. <ced...@fr...> - 2007-09-15 17:36:27
|
Hi, I think I found a bug due to ecore_job inside edje. Take the following code as an example : /* First run of ecore */ ecore_init(); ecore_evas_init(); edje_init(); setup(); ecore_evas_show(ee); ecore_main_loop_begin(); evas_object_del(eo_bg); ecore_evas_free(ee); edje_shutdown(); ecore_evas_shutdown(); ecore_shutdown(); /* Second call. */ ecore_init(); ecore_evas_init(); edje_init(); setup(); ecore_evas_show(ee); ecore_main_loop_begin(); evas_object_del(eo_bg); ecore_evas_free(ee); edje_shutdown(); ecore_evas_shutdown(); ecore_shutdown(); /* End of sample code. */ The edje you will instantiate inside the second call will never receive any signal. It's due to two bugs, first inside edje, _edje_timer and job_loss_timer could stay alive after edje_shutdown and never get reinitialised. And inside ecore_job, ecore_event_job_type and it's handler will not being reseted correctly. As a patch we could add an ecore_job_init/ecore_job_shutdown that do the reset properly. The patch are attached, but this solution break every application/library using it. Cedric |