jackdanielz pushed a commit to branch master.

commit d29dd0399c0c42d0fa8ba768753bba8a3149c92e
Author: Aharon Hillel <[email protected]>
Date:   Mon Jul 1 18:37:17 2013 +0300

    Gesture Layer: fix crash during deletion.
    
    if target object is deleted before GLayer is deleted, we get a crash
    from _event_history_clear.
    Setting target to NULL on delete, then testing it before reporting state
    takes care of this problem.
---
 src/lib/elm_gesture_layer.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_gesture_layer.c b/src/lib/elm_gesture_layer.c
index 585ccb0..0ae0f18 100644
--- a/src/lib/elm_gesture_layer.c
+++ b/src/lib/elm_gesture_layer.c
@@ -960,6 +960,8 @@ _target_del_cb(void *data,
                void *event_info __UNUSED__)
 {
    _callbacks_unregister(data);
+   ELM_GESTURE_LAYER_DATA_GET(data, sd);
+   sd->target = NULL;
 }
 
 /**
@@ -1165,8 +1167,9 @@ _event_history_clear(Evas_Object *obj)
                }
              else
                {  /* Report ABORT to all gestures that still not finished */
-                 _state_set(p, ELM_GESTURE_STATE_ABORT, sd->gesture[i]->info,
-                            EINA_FALSE);
+                  if (sd->target)
+                    _state_set(p, ELM_GESTURE_STATE_ABORT,
+                          sd->gesture[i]->info, EINA_FALSE);
                }
           }
      }

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to