jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9b7ac51943ba0d6391b75cf2d0318bedee905c63

commit 9b7ac51943ba0d6391b75cf2d0318bedee905c63
Author: Subhransu Mohanty <sub.moha...@samsung.com>
Date:   Fri Oct 14 19:45:42 2016 +0900

    evas/map: do nothing when same map is set again
    
    Reviewers: cedric, Hermet, jpeg
    
    Reviewed By: jpeg
    
    Subscribers: cedric, jpeg
    
    Differential Revision: https://phab.enlightenment.org/D4344
---
 src/lib/evas/canvas/evas_map.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c
index 66bea1c..ccac223 100644
--- a/src/lib/evas/canvas/evas_map.c
+++ b/src/lib/evas/canvas/evas_map.c
@@ -51,7 +51,7 @@ _evas_map_calc_map_geometry(Evas_Object *eo_obj)
                   
                   p = obj->map->cur.map->points;
                   p2 = obj->map->prev.map->points;
-                  if (memcmp(p, p2, sizeof(Evas_Map_Point) * 
+                  if (memcmp(p, p2, sizeof(Evas_Map_Point) *
                              obj->map->prev.map->count) != 0)
                     ch = EINA_TRUE;
                   if (!ch)
@@ -564,6 +564,21 @@ evas_object_map_set(Evas_Object *eo_obj, const Evas_Map 
*map)
 {
    Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj);
 
+   // check if the new map and current map attributes are same
+   if (map && obj->map->cur.map &&
+       (obj->map->cur.map->alpha == map->alpha) &&
+       (obj->map->cur.map->smooth == map->smooth) &&
+       (obj->map->cur.map->move_sync.enabled == map->move_sync.enabled) &&
+       (obj->map->cur.map->count == map->count))
+     {
+        const Evas_Map_Point *p1, *p2;
+        p1 = obj->map->cur.map->points;
+        p2 = map->points;
+        if (memcmp(p1, p2, sizeof(Evas_Map_Point) *
+                   map->count) == 0)
+          return;
+     }
+
    evas_object_async_block(obj);
    if ((!map) || (map->count < 4))
      {

-- 


Reply via email to