cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e4107b2936e2a11e5966bbdc591f110156191af0
commit e4107b2936e2a11e5966bbdc591f110156191af0 Author: Cedric Bail <[email protected]> Date: Wed Dec 4 15:36:17 2013 +0900 eina: work around current strange behavior seen in eina_cow. This is not perfect, it will just limit the propagation of the problem for some time. Yes, it does hide it under the carpet, but that's better than having a crash. Problem seems to be in Eina_Hash, but is really difficult to reproduce and fix for the moment. --- src/lib/eina/eina_cow.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib/eina/eina_cow.c b/src/lib/eina/eina_cow.c index 73a65e5..2dd8807 100644 --- a/src/lib/eina/eina_cow.c +++ b/src/lib/eina/eina_cow.c @@ -261,6 +261,16 @@ _eina_cow_gc(Eina_Cow *cow, Eina_Cow_GC *gc) data = EINA_COW_DATA_GET(gc->ref); + /* + THIS IS A TEMPORARY WORK AROUND THAT SHOULD LIMIT PROBLEM + UNTIL WE KNOW WHY THERE IS A PROBLEM IN EINA_HASH. + */ + if (gc->ref->refcount == 0) + { + eina_hash_del(cow->togc, &gc->ref, gc); + return ; + } + current_cow_size = cow->struct_size; match = eina_hash_find(cow->match, data); if (match) --
