From 13e588c838095cc7f55bef1e6e4240db7e692893 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 23 May 2018 12:15:26 -0700 Subject: [PATCH] evas: disable del hook when pushed inside the hash. This is necessary in case of cycling init/shutdown as the hash will destroy the Event, but the hook will instantly reinsert it. --- src/lib/evas/canvas/efl_input_event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/efl_input_event.c b/src/lib/evas/canvas/efl_input_event.c index bf940cc..9bd5151 100644 --- a/src/lib/evas/canvas/efl_input_event.c +++ b/src/lib/evas/canvas/efl_input_event.c @@ -72,6 +72,8 @@ _del_hook(Eo *evt) Efl_Input_Event *cached; const Eo *klass = efl_class_get(evt); + efl_del_intercept_set(evt, NULL); + cached = eina_hash_find(_cached_events, &klass); if (!cached) { @@ -81,7 +83,6 @@ _del_hook(Eo *evt) } else { - efl_del_intercept_set(evt, NULL); efl_unref(evt); } } @@ -111,6 +112,7 @@ efl_input_event_instance_get(Eo *klass, Eo *owner) eina_hash_del(_cached_events, &klass, evt); efl_parent_set(evt, owner); efl_unref(evt); // Remove reference before turning on self destruction + efl_del_intercept_set(evt, _del_hook); efl_event_callback_add(evt, EFL_EVENT_NOREF, _noref_death, NULL); } else -- 2.7.4