From b16b5bb958d9d837f6495d7862e9c09b0511bbd7 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 12 Feb 2014 22:51:07 +0900 Subject: [PATCH] edje segv on file update - try and fix this. not sure if this caused it it serems as if maybe the edf->edjes can get an edje added twice... --- src/lib/edje/edje_cache.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_cache.c b/src/lib/edje/edje_cache.c index 607eff5044..ee815067a7 100644 --- a/src/lib/edje/edje_cache.c +++ b/src/lib/edje/edje_cache.c @@ -404,6 +404,9 @@ _edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_r Eina_List *l, *hist; Edje_Part_Collection *edc; Edje_Part *ep; +#ifdef HAVE_EIO + Eina_Bool added = EINA_FALSE; +#endif if (!_edje_file_hash) { @@ -434,7 +437,11 @@ find_list: if (!edf) return NULL; #ifdef HAVE_EIO - if (ed) edf->edjes = eina_list_append(edf->edjes, ed); + if (ed) + { + edf->edjes = eina_list_append(edf->edjes, ed); + added = EINA_TRUE; + } #else (void) ed; #endif @@ -546,7 +553,10 @@ open: } } #ifdef HAVE_EIO - if (edc && ed) edf->edjes = eina_list_append(edf->edjes, ed); + if (!added) + { + if (edc && ed) edf->edjes = eina_list_append(edf->edjes, ed); + } #else (void) ed; #endif