jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8cb3b79a82b1769cba5a7a10f9937aa18dd65d8a

commit 8cb3b79a82b1769cba5a7a10f9937aa18dd65d8a
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Aug 10 15:25:44 2016 +0900

    evas: Optimize out a function call if not required
    
    Same as the previous patch in elm_widget: don't call
    flags_set() if the flags have not changed.
---
 src/lib/evas/canvas/evas_callbacks.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/canvas/evas_callbacks.c 
b/src/lib/evas/canvas/evas_callbacks.c
index 00a5e62..cdd8fc8 100644
--- a/src/lib/evas/canvas/evas_callbacks.c
+++ b/src/lib/evas/canvas/evas_callbacks.c
@@ -265,7 +265,7 @@ evas_object_event_callback_call(Evas_Object *eo_obj, 
Evas_Object_Protected_Data
    /* new input events */
    if (eo_event_desc)
      {
-        Efl_Event_Flags *pevflags = NULL;
+        Efl_Event_Flags *pevflags = NULL, evflags;
 
 #define EV_CASE(TYPE, NEWTYPE, Type) \
    case EVAS_CALLBACK_ ## TYPE: \
@@ -288,9 +288,14 @@ evas_object_event_callback_call(Evas_Object *eo_obj, 
Evas_Object_Protected_Data
           }
 #undef EV_CASE
 
-        if (pevflags) efl_event_flags_set(eo_event_info, *pevflags);
+        if (pevflags)
+          {
+             efl_event_flags_set(eo_event_info, *pevflags);
+             evflags = *pevflags;
+          }
         eo_event_callback_call(eo_obj, eo_event_desc, eo_event_info);
-        if (pevflags) *pevflags = efl_event_flags_get(eo_event_info);
+        if (pevflags && (*pevflags != evflags))
+          *pevflags = efl_event_flags_get(eo_event_info);
      }
 
    /* legacy callbacks - relying on Efl.Canvas.Object events */

-- 


Reply via email to