summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Vehmanen <kai.vehmanen@nokia.com>2011-01-20 23:46:54 +0200
committerKai Vehmanen <kai.vehmanen@nokia.com>2011-01-21 13:16:17 +0200
commit6b6126ac36645c81292ba89c42cbf2e304b8d2e3 (patch)
tree1dcf31b695a9c5890a08b6620e175d141acb2e72
parentbc8da39ffa02155858fcce83dbad3bc6da1558ff (diff)
ring-call-channel: do not run dispose multiple times
-rw-r--r--src/ring-call-channel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ring-call-channel.c b/src/ring-call-channel.c
index bd91f5b..1f4a6bd 100644
--- a/src/ring-call-channel.c
+++ b/src/ring-call-channel.c
@@ -106,7 +106,7 @@ struct _RingCallChannelPrivate
uint8_t state;
- unsigned constructed:1, released:1, closing:1;
+ unsigned constructed:1, released:1, closing:1, disposed:1;
unsigned call_instance_seen:1;
@@ -442,6 +442,10 @@ ring_call_channel_dispose(GObject *object)
RingCallChannelPrivate *priv = self->priv;
TpBaseChannel *base = TP_BASE_CHANNEL (object);
+ if (self->priv->disposed)
+ return;
+ self->priv->disposed = TRUE;
+
if (priv->member.handle) {
TpHandleRepoIface *repo = tp_base_connection_get_handles(
tp_base_channel_get_connection (base), TP_HANDLE_TYPE_CONTACT);