bdilly pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=826cd7cb5e6e6a0a53dbe1c687de072dd8fd2f6c
commit 826cd7cb5e6e6a0a53dbe1c687de072dd8fd2f6c Author: Guilherme Iscaro <[email protected]> Date: Thu Dec 1 16:12:37 2016 -0200 Efl.Input: Reset the Efl.Input object as soon as possible. By doing this the pd->device reference is unrefed and deleted if no one else is holding a reference to it. --- src/lib/evas/canvas/efl_input_focus.c | 2 +- src/lib/evas/canvas/efl_input_key.c | 2 +- src/lib/evas/canvas/efl_input_pointer.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/efl_input_focus.c b/src/lib/evas/canvas/efl_input_focus.c index 0bf4912..da2aba6 100644 --- a/src/lib/evas/canvas/efl_input_focus.c +++ b/src/lib/evas/canvas/efl_input_focus.c @@ -25,6 +25,7 @@ _del_hook(Eo *evt) } efl_reuse(evt); s_cached_event = evt; + efl_input_reset(s_cached_event); } else { @@ -136,7 +137,6 @@ _efl_input_focus_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd E { evt = s_cached_event; s_cached_event = NULL; - efl_input_reset(evt); efl_parent_set(evt, owner); } else diff --git a/src/lib/evas/canvas/efl_input_key.c b/src/lib/evas/canvas/efl_input_key.c index 685b6b3..869b559 100644 --- a/src/lib/evas/canvas/efl_input_key.c +++ b/src/lib/evas/canvas/efl_input_key.c @@ -25,6 +25,7 @@ _del_hook(Eo *evt) } efl_reuse(evt); s_cached_event = evt; + efl_input_reset(s_cached_event); } else { @@ -44,7 +45,6 @@ _efl_input_key_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd EIN { evt = s_cached_event; s_cached_event = NULL; - efl_input_reset(evt); efl_parent_set(evt, owner); } else diff --git a/src/lib/evas/canvas/efl_input_pointer.c b/src/lib/evas/canvas/efl_input_pointer.c index 4ec9af0..109906e 100644 --- a/src/lib/evas/canvas/efl_input_pointer.c +++ b/src/lib/evas/canvas/efl_input_pointer.c @@ -36,6 +36,7 @@ _del_hook(Eo *evt) } efl_reuse(evt); s_cached_event = evt; + efl_input_reset(s_cached_event); } else { @@ -55,7 +56,6 @@ _efl_input_pointer_efl_input_event_instance_get(Eo *klass EINA_UNUSED, void *_pd { evt = s_cached_event; s_cached_event = NULL; - efl_input_reset(evt); efl_parent_set(evt, owner); } else --
