[Telepathy-commits] [telepathy-glib/master] BaseConnection: check that new self-handles are non-zero once CONNECTED

Will Thompson will.thompson at collabora.co.uk
Thu Aug 28 08:49:39 PDT 2008


---
 telepathy-glib/base-connection.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/telepathy-glib/base-connection.c b/telepathy-glib/base-connection.c
index 3ed7bc1..4ac746f 100644
--- a/telepathy-glib/base-connection.c
+++ b/telepathy-glib/base-connection.c
@@ -215,11 +215,18 @@ tp_base_connection_set_property (GObject      *object,
       break;
 
     case PROP_SELF_HANDLE:
-      tp_handle_unref (priv->handles[TP_HANDLE_TYPE_CONTACT],
-          self->self_handle);
-      self->self_handle = g_value_get_uint (value);
-      tp_handle_ref (priv->handles[TP_HANDLE_TYPE_CONTACT],
-          self->self_handle);
+      {
+        TpHandle new_self_handle = g_value_get_uint (value);
+
+        if (self->status == TP_CONNECTION_STATUS_CONNECTED)
+          g_return_if_fail (new_self_handle != 0);
+
+        tp_handle_unref (priv->handles[TP_HANDLE_TYPE_CONTACT],
+            self->self_handle);
+        self->self_handle = new_self_handle;
+        tp_handle_ref (priv->handles[TP_HANDLE_TYPE_CONTACT],
+            self->self_handle);
+      }
       break;
 
     default:
-- 
1.5.6.3




More information about the Telepathy-commits mailing list