summaryrefslogtreecommitdiff
path: root/src/lib/eina
diff options
context:
space:
mode:
authorCedric Bail <cedric.bail@samsung.com>2013-12-04 15:36:17 +0900
committerCedric Bail <cedric.bail@samsung.com>2013-12-04 15:36:17 +0900
commite4107b2936e2a11e5966bbdc591f110156191af0 (patch)
treed42867f280ccacad1fb7c2b5069492b4f0582bb0 /src/lib/eina
parentd31a85bb513df4cb0e30e5c5a98c0fd9e94594ea (diff)
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.
Diffstat (limited to 'src/lib/eina')
-rw-r--r--src/lib/eina/eina_cow.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/eina/eina_cow.c b/src/lib/eina/eina_cow.c
index 73a65e5f30..2dd8807310 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)
261 261
262 data = EINA_COW_DATA_GET(gc->ref); 262 data = EINA_COW_DATA_GET(gc->ref);
263 263
264 /*
265 THIS IS A TEMPORARY WORK AROUND THAT SHOULD LIMIT PROBLEM
266 UNTIL WE KNOW WHY THERE IS A PROBLEM IN EINA_HASH.
267 */
268 if (gc->ref->refcount == 0)
269 {
270 eina_hash_del(cow->togc, &gc->ref, gc);
271 return ;
272 }
273
264 current_cow_size = cow->struct_size; 274 current_cow_size = cow->struct_size;
265 match = eina_hash_find(cow->match, data); 275 match = eina_hash_find(cow->match, data);
266 if (match) 276 if (match)