discomfitor pushed a commit to branch evas-1.7.

commit 043baef6e1f4826e815364162d08d98361ce617f
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Apr 22 16:34:14 2013 +0100

    fix recursive proxy rendering to just render a black rectangle
---
 ChangeLog                          |  4 ++++
 NEWS                               | 18 +++++++++++++++++-
 src/lib/canvas/evas_object_image.c | 15 ++++++++-------
 3 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 330dbba..977f1f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1237,6 +1237,7 @@
 
         * Fix crash in Evas Buffer engine when using output without alpha 
channel.
 
+<<<<<<< HEAD
 2013-04-04 Tom Hacohen
 
         * Evas font: If OS/2 table is available and the font is demi-bold,
@@ -1282,3 +1283,6 @@
         state info, the object context can be corrupted at the next show time.
         Now it replaces the cur/prev in that rare case.
 
+2013-04-22  Mike Blumenkrantz
+
+        * Fix recursive proxy image rendering to just render black
diff --git a/NEWS b/NEWS
index 5814e47..5911ddc 100644
--- a/NEWS
+++ b/NEWS
@@ -10,9 +10,25 @@ Fixes:
    * Evas map: don't be crashed even if image size is 0.
    * Evas: Don't update evas update area by the clipper if the image obj 
visible is changed.
    * Evas textblock: Fixed a bug with deletion of ranges that end just before 
a visual format.
-    * Evas: If an object goes to be hidden without replacing the cur/prev 
state info, the object context can be corrupted at the next show time. Now it 
replaces the cur/prev in that rare case.
+   * Evas: If an object goes to be hidden without replacing the cur/prev state 
info, the object context can be corrupted at the next show time. Now it 
replaces the cur/prev in that rare case.
+   * Fix recursive proxy image rendering to just render black
 
 Evas 1.7.6
+    * Fix SIGFPE in evas map update if image is 0.
+    * Evas textblock: Fixed issue and simplified cursor_geometry_get.
+    * Evas text: Fixed issue with horiz advance.
+    * Evas text utils: Fixed issue with no-harfbuzz bidi.
+    * Fixed pixman surface alloc where allocated and image size differ.
+    * Stop initializing and shutting Fontconfig down
+    * Evas textblock: Fixed a selection issue with different scripts and bidi.
+    * Fix memory usage spike when rotating with the software_x11 engine.
+    * Fix bmp portability issue on some 64bits system.
+    * Fix textgrid portability issue on some 64bits system.
+    * Evas text: Fixed bug with the text object direction detection.
+    * Evas font: Fixed font run detection for specific cases with 2 different 
fonts in the middle of a run.
+    * Evas cache: remove the freed worker from the pthread worker list when 
it's failed to create a new thread so as not to access it if a thread is 
working newly.
+    * Fix evas word start/end find in textblock to be consistent with other 
toolkit logic on the matter
+    * Fix crash in Evas Buffer engine when using output with no alpha.
 
 Changes since Evas 1.7.5:
 -------------------------
diff --git a/src/lib/canvas/evas_object_image.c 
b/src/lib/canvas/evas_object_image.c
index 855570d..64b2daf 100644
--- a/src/lib/canvas/evas_object_image.c
+++ b/src/lib/canvas/evas_object_image.c
@@ -91,6 +91,7 @@ struct _Evas_Object_Image
    unsigned char     video_surface : 1;
    unsigned char     video_visible : 1;
    unsigned char     created : 1;
+   unsigned char     proxyerror : 1;
 };
 
 /* private methods for image objects */
@@ -2244,6 +2245,7 @@ _proxy_unset(Evas_Object *proxy)
         evas_map_free(o->cur.defmap);
         o->cur.defmap = NULL;
      }
+   o->proxyerror = 0;
 }
 
 
@@ -2261,6 +2263,7 @@ _proxy_set(Evas_Object *proxy, Evas_Object *src)
 
    src->proxy.proxies = eina_list_append(src->proxy.proxies, proxy);
    src->proxy.redraw = EINA_TRUE;
+   o->proxyerror = 0;
 }
 
 /* Some moron just set a proxy on a proxy.
@@ -2271,16 +2274,14 @@ _proxy_error(Evas_Object *proxy, void *context, void 
*output, void *surface,
              int x, int y)
 {
    Evas_Func *func;
-   int r = rand() % 255;
-   int g = rand() % 255;
-   int b = rand() % 255;
+   Evas_Object_Image *o;
    
-   /* XXX: Eina log error or something I'm sure
-    * If it bugs you, just fix it.  Don't tell me */
-   if (VERBOSE_PROXY_ERROR) printf("Err: Argh! Recursive proxies.\n");
+   o = proxy->object_data;
+   if (!o->proxyerror) printf("Err: Argh! Recursive proxies.\n");
+   o->proxyerror = 1;
    
    func = proxy->layer->evas->engine.func;
-   func->context_color_set(output, context, r, g, b, 255);
+   func->context_color_set(output, context, 0, 0, 0, 255);
    func->context_multiplier_unset(output, context);
    func->context_render_op_set(output, context, proxy->cur.render_op);
    func->rectangle_draw(output, context, surface, proxy->cur.geometry.x + x,

-- 

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter

Reply via email to