summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2014-12-08 14:55:30 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2014-12-08 15:14:24 -0500
commit6a08788d59c020aea8e0f24dc072630d5ae61c18 (patch)
tree68e13c1981e7c6126ae0030e197778eef593dcde
parentb0009502882be6582a39695d03ac5eaa3a759822 (diff)
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
-rw-r--r--src/lib/eldbus/eldbus_pending.c2
-rw-r--r--src/lib/eldbus/eldbus_private_types.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c
index efa3970..53cc47e 100644
--- a/src/lib/eldbus/eldbus_pending.c
+++ b/src/lib/eldbus/eldbus_pending.c
@@ -219,6 +219,8 @@ static void
219eldbus_pending_dispatch(Eldbus_Pending *pending, Eldbus_Message *msg) 219eldbus_pending_dispatch(Eldbus_Pending *pending, Eldbus_Message *msg)
220{ 220{
221 DBG("pending=%p msg=%p", pending, msg); 221 DBG("pending=%p msg=%p", pending, msg);
222 if (pending->called) return;
223 pending->called = 1;
222 if (pending->cb) 224 if (pending->cb)
223 pending->cb((void *)pending->cb_data, msg, pending); 225 pending->cb((void *)pending->cb_data, msg, pending);
224 226
diff --git a/src/lib/eldbus/eldbus_private_types.h b/src/lib/eldbus/eldbus_private_types.h
index 8ebe682..14959d0 100644
--- a/src/lib/eldbus/eldbus_private_types.h
+++ b/src/lib/eldbus/eldbus_private_types.h
@@ -114,6 +114,7 @@ struct _Eldbus_Pending
114 Eina_Inlist *data; 114 Eina_Inlist *data;
115 Eina_Inlist *cbs_free; 115 Eina_Inlist *cbs_free;
116 Eldbus_Message *msg_sent; 116 Eldbus_Message *msg_sent;
117 Eina_Bool called : 1;
117}; 118};
118 119
119struct _Eldbus_Message_Iter 120struct _Eldbus_Message_Iter