summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/edje/edje_signal.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/edje/edje_signal.c b/src/lib/edje/edje_signal.c
index 1ccb4fba83..1ec9b151d1 100644
--- a/src/lib/edje/edje_signal.c
+++ b/src/lib/edje/edje_signal.c
@@ -201,6 +201,7 @@ _edje_signal_callback_push(const Edje_Signal_Callback_Group *cgp,
201 Edje_Signal_Callback_Matches *tmp; 201 Edje_Signal_Callback_Matches *tmp;
202 202
203 tmp = (Edje_Signal_Callback_Matches*) gp->matches; 203 tmp = (Edje_Signal_Callback_Matches*) gp->matches;
204
204 if (EINA_REFCOUNT_GET(tmp) == 1) 205 if (EINA_REFCOUNT_GET(tmp) == 1)
205 { 206 {
206 eina_hash_del(signal_match, tmp, tmp); 207 eina_hash_del(signal_match, tmp, tmp);
@@ -215,6 +216,8 @@ _edje_signal_callback_push(const Edje_Signal_Callback_Group *cgp,
215 (void) 0; // Nothing to do because the case where refcount == 1 was already handle above. 216 (void) 0; // Nothing to do because the case where refcount == 1 was already handle above.
216 gp->matches = tmp_dup; 217 gp->matches = tmp_dup;
217 } 218 }
219
220 assert(gp->matches->hashed == 0);
218 } 221 }
219 222
220 // search an empty spot now 223 // search an empty spot now
@@ -388,7 +391,10 @@ _edje_signal_callback_patterns_ref(const Edje_Signal_Callback_Group *gp)
388 tmp->patterns = NULL; 391 tmp->patterns = NULL;
389 392
390 _edje_callbacks_patterns_init((Edje_Signal_Callback_Group*) gp); 393 _edje_callbacks_patterns_init((Edje_Signal_Callback_Group*) gp);
391 eina_hash_add(signal_match, tmp, tmp); 394 eina_hash_add(signal_match, tmp, tmp);
395 // We should be able to use direct_add, but if I do so valgrind stack explode and
396 // it bagain to be a pain to debug efl apps. I can't understand what is going on.
397 // eina_hash_direct_add(signal_match, tmp, tmp);
392 tmp->hashed = EINA_TRUE; 398 tmp->hashed = EINA_TRUE;
393 } 399 }
394 else 400 else