[telepathy-gabble/master] Assert that sessions' peer, resource, sid are set

Will Thompson will.thompson at collabora.co.uk
Tue Jun 9 08:21:09 PDT 2009


It seems more coherent to ensure that a JingleSession always knows its
ID and who it's to, rather than to sometimes set these later.
---
 src/jingle-factory.c |    3 +++
 src/jingle-session.c |   15 +++++++--------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/jingle-factory.c b/src/jingle-factory.c
index 1c072c0..01cb4d2 100644
--- a/src/jingle-factory.c
+++ b/src/jingle-factory.c
@@ -819,6 +819,9 @@ create_session (GabbleJingleFactory *fac,
   gboolean local_initiator;
   gchar *sid_;
 
+  g_assert (peer != 0);
+  g_assert (peer_resource != NULL);
+
   if (sid != NULL)
     {
       g_assert (NULL == g_hash_table_lookup (priv->sessions, sid));
diff --git a/src/jingle-session.c b/src/jingle-session.c
index 28323b2..4db456e 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -313,19 +313,18 @@ gabble_jingle_session_constructed (GObject *object)
       G_OBJECT_CLASS (gabble_jingle_session_parent_class)->constructed;
   GabbleJingleSession *self = GABBLE_JINGLE_SESSION (object);
   GabbleJingleSessionPrivate *priv = self->priv;
+  TpHandleRepoIface *contact_repo = tp_base_connection_get_handles (
+      (TpBaseConnection *) priv->conn, TP_HANDLE_TYPE_CONTACT);
 
   if (chain_up != NULL)
     chain_up (object);
 
   g_assert (priv->conn != NULL);
+  g_assert (self->peer != 0);
+  g_assert (priv->peer_resource != NULL);
+  g_assert (priv->sid != NULL);
 
-  if (self->peer != 0)
-    {
-      TpHandleRepoIface *contact_repo = tp_base_connection_get_handles (
-          (TpBaseConnection *) priv->conn, TP_HANDLE_TYPE_CONTACT);
-
-      tp_handle_ref (contact_repo, self->peer);
-    }
+  tp_handle_ref (contact_repo, self->peer);
 }
 
 GabbleJingleSession *
@@ -387,7 +386,7 @@ gabble_jingle_session_class_init (GabbleJingleSessionClass *cls)
   param_spec = g_param_spec_string ("peer-resource", "Session peer's resource",
       "The resource of the contact with whom this session communicates.",
       NULL,
-      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
   g_object_class_install_property (object_class, PROP_PEER_RESOURCE,
       param_spec);
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list