evas: so we did have a test to check if we could reuse the same map pointer,
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 2 May 2012 04:37:39 +0000 (04:37 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 2 May 2012 04:37:39 +0000 (04:37 +0000)
but instead we did a malloc, a double memcpy and a free. WTH ?

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@70593 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_map.c

index 46ac024..640702e 100644 (file)
@@ -514,12 +514,9 @@ evas_object_map_set(Evas_Object *obj, const Evas_Map *map)
 
    if ((obj->cur.map) && (obj->cur.map->count == map->count))
      {
-        Evas_Map *omap = obj->cur.map;
-        obj->cur.map = _evas_map_new(map->count);
-        memcpy(obj->cur.map, omap, sizeof(Evas_Map) + (map->count * sizeof(Evas_Map_Point)));
+        /* We do have the same exact count of point in this map, so just copy it */
         _evas_map_copy(obj->cur.map, map);
-        if (obj->prev.map == omap) obj->prev.map = NULL;
-        free(omap);
+       if (obj->prev.map == obj->cur.map) obj->prev.map = NULL;
      }
    else
      {