From 6a08788d59c020aea8e0f24dc072630d5ae61c18 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 8 Dec 2014 14:55:30 -0500 Subject: [PATCH] eldbus hackaround for proxy deletion during pending callback this is merely a way to avoid crashing immediately when the referenced bug is triggered. it does not fix the problem. ref T1908 --- src/lib/eldbus/eldbus_pending.c | 2 ++ src/lib/eldbus/eldbus_private_types.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c index efa3970701..53cc47eaed 100644 --- a/src/lib/eldbus/eldbus_pending.c +++ b/src/lib/eldbus/eldbus_pending.c @@ -219,6 +219,8 @@ static void eldbus_pending_dispatch(Eldbus_Pending *pending, Eldbus_Message *msg) { DBG("pending=%p msg=%p", pending, msg); + if (pending->called) return; + pending->called = 1; if (pending->cb) pending->cb((void *)pending->cb_data, msg, pending); diff --git a/src/lib/eldbus/eldbus_private_types.h b/src/lib/eldbus/eldbus_private_types.h index 8ebe682544..14959d03e6 100644 --- a/src/lib/eldbus/eldbus_private_types.h +++ b/src/lib/eldbus/eldbus_private_types.h @@ -114,6 +114,7 @@ struct _Eldbus_Pending Eina_Inlist *data; Eina_Inlist *cbs_free; Eldbus_Message *msg_sent; + Eina_Bool called : 1; }; struct _Eldbus_Message_Iter