evas/canvas - Update the pointer to engine_data after pixels_get().
authorantognolli <antognolli@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 2 Sep 2011 14:06:25 +0000 (14:06 +0000)
committerantognolli <antognolli@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 2 Sep 2011 14:06:25 +0000 (14:06 +0000)
The "pixels" pointer was set in the beginning of evas_object_image_render(),
and never updated, even after pixels_get() changed the content of
o->engine_data.

This patch updates that pointer if it becomes different from engine_data.

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

src/lib/canvas/evas_object_image.c

index 4b68e0c..7da46fe 100644 (file)
@@ -2798,6 +2798,8 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
             if (o->func.get_pixels)
               {
                  o->func.get_pixels(o->func.get_pixels_data, obj);
+                 if (o->engine_data != pixels)
+                   pixels = o->engine_data;
                  o->engine_data = obj->layer->evas->engine.func->image_dirty_region
                      (obj->layer->evas->engine.data.output, o->engine_data,
                          0, 0, o->cur.image.w, o->cur.image.h);