raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0c1d42bb689fe7e606058b8c4c2109931387f90b
commit 0c1d42bb689fe7e606058b8c4c2109931387f90b Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Thu Jan 2 09:26:34 2014 +0900 fix map-across-mark patch from sergey in december 2013 stable release - cherry-pick me! of course! eina_hash_direct_add() for the object pointer is using the poitner to the stack value, not the value itself it points to... this was bad and just by luck out value was on the stack that grows but never shrinks and thus never crashes, BUT... it will just break in all sorts of fun ways. basically it makes the hash useless as the keys in it are effectively all the SAME value as they point to the same storage.. but it changes whenever that stack mem gets changed. --- src/lib/evas/canvas/evas_clip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index 20585be..8f74dd6 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -84,7 +84,7 @@ evas_object_child_map_across_mark(Evas_Object *eo_obj, Evas_Object_Protected_Dat clear_visited = EINA_TRUE; } if (eina_hash_find(visited, &eo_obj) == (void *)1) goto end; - else eina_hash_direct_add(visited, &eo_obj, (void *)1); + else eina_hash_add(visited, &eo_obj, (void *)1); if ((obj->map->cur.map_parent != map_obj) || force) { --