events - fix the double free() case.
authorChunEon Park <chuneon.park@samsung.com>
Tue, 9 Jul 2013 05:02:45 +0000 (14:02 +0900)
committerJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 9 Jul 2013 05:32:59 +0000 (14:32 +0900)
don't free the data if the data is still being used.

Change-Id: I9b4185a8ed6bf191ef3b6f3c046fdf0ab9f741fc

src/lib/efl_assist_events.c

index fdf3359..cfb6592 100644 (file)
@@ -58,7 +58,8 @@ _ea_object_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
       free(callback);
    obj_event->callbacks = eina_list_free(obj_event->callbacks);
 
-   free(obj_event);
+   if (obj_event->on_callback) obj_event->delete_me = EINA_TRUE;
+   else free(obj_event);
 
    _ea_event_mgr_del(event_mgr);
 }