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.
This commit is contained in:
Carsten Haitzler 2014-01-02 09:26:34 +09:00
parent 6ea95af025
commit 0c1d42bb68
1 changed files with 1 additions and 1 deletions

View File

@ -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)
{