ensure fwin efm delete callback does not trigger crash
authorMike Blumenkrantz <zmike@osg.samsung.com>
Fri, 20 Nov 2015 14:09:38 +0000 (09:09 -0500)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Fri, 20 Nov 2015 14:09:38 +0000 (09:09 -0500)
if this is called during fwin delete, dereferencing the passed data
will result in a crash

src/modules/fileman/e_fwin.c

index 68c69f573ba84a5461b2a2863fc348689d6b581c..eb9764c239d7a661058a3973224066e08dac14c4 100644 (file)
@@ -1934,24 +1934,20 @@ _e_fwin_cb_key_down(void *data,
 }
 
 static void
-_e_fwin_cb_page_obj_del(void *data,
+_e_fwin_cb_page_obj_del(void *data EINA_UNUSED,
                         Evas *evas       EINA_UNUSED,
-                        Evas_Object *obj EINA_UNUSED,
+                        Evas_Object *obj,
                         void *event_info EINA_UNUSED)
 {
-   E_Fwin_Page *page;
-
-   page = data;
-
-   evas_object_smart_callback_del(page->fm_obj, "dir_changed",
+   evas_object_smart_callback_del(obj, "dir_changed",
                                   _e_fwin_changed);
-   evas_object_smart_callback_del(page->fm_obj, "dir_deleted",
+   evas_object_smart_callback_del(obj, "dir_deleted",
                                   _e_fwin_deleted);
-   evas_object_smart_callback_del(page->fm_obj, "selected",
+   evas_object_smart_callback_del(obj, "selected",
                                   _e_fwin_selected);
-   evas_object_smart_callback_del(page->fm_obj, "selection_change",
+   evas_object_smart_callback_del(obj, "selection_change",
                                   _e_fwin_selection_change);
-   evas_object_event_callback_del(page->fm_obj, EVAS_CALLBACK_DEL,
+   evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL,
                                   _e_fwin_cb_page_obj_del);
 }