cedric pushed a commit to branch master.
commit a07fab03e82ad40e3d54557e3961370c6cb33945
Author: Cedric Bail <[email protected]>
Date: Wed Aug 7 18:40:42 2013 +0900
evas: CRIT when someone change object geometry during pixels get callback.
---
src/lib/evas/canvas/evas_object_image.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/lib/evas/canvas/evas_object_image.c
b/src/lib/evas/canvas/evas_object_image.c
index 4af6bf9..df57721 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -3646,6 +3646,8 @@ evas_process_dirty_pixels(Evas_Object *eo_obj,
Evas_Object_Protected_Data *obj,
{
if (o->pixels->func.get_pixels)
{
+ Evas_Coord x, y, w, h;
+
if (obj->layer->evas->engine.func->image_native_get)
{
Evas_Native_Surface *ns;
@@ -3690,9 +3692,20 @@ evas_process_dirty_pixels(Evas_Object *eo_obj,
Evas_Object_Protected_Data *obj,
}
}
+ x = obj->cur->geometry.x;
+ y = obj->cur->geometry.y;
+ w = obj->cur->geometry.w;
+ h = obj->cur->geometry.h;
+
if (!o->direct_render)
o->pixels->func.get_pixels(o->pixels->func.get_pixels_data,
eo_obj);
+ if (!(obj->cur->geometry.x == x &&
+ obj->cur->geometry.y == y &&
+ obj->cur->geometry.w == w &&
+ obj->cur->geometry.h == h))
+ CRIT("Evas_Object_Image geometry did change during pixels get
callback !");
+
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);
--
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk