[farsight2/master] msnstream: Don't keep lock into set_remote_candidates

Olivier Crête olivier.crete at collabora.co.uk
Thu Sep 17 18:44:35 PDT 2009


---
 gst/fsmsnconference/fs-msn-stream.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/gst/fsmsnconference/fs-msn-stream.c b/gst/fsmsnconference/fs-msn-stream.c
index 8e5283f..0a6c9ae 100644
--- a/gst/fsmsnconference/fs-msn-stream.c
+++ b/gst/fsmsnconference/fs-msn-stream.c
@@ -791,16 +791,22 @@ fs_msn_stream_set_remote_candidates (FsStream *stream, GList *candidates,
 {
   FsMsnStream *self = FS_MSN_STREAM (stream);
   FsMsnConference *conference = fs_msn_stream_get_conference (self, error);
-  gboolean ret;
+  FsMsnConnection *conn = NULL;
+  gboolean ret = FALSE;
 
   if (!conference)
     return FALSE;
 
   GST_OBJECT_LOCK (conference);
-  ret = fs_msn_connection_set_remote_candidates (self->priv->connection,
-      candidates, error);
+  if (self->priv->connection)
+    conn = g_object_ref (self->priv->connection);
   GST_OBJECT_UNLOCK (conference);
 
+  if (conn)
+  {
+    ret = fs_msn_connection_set_remote_candidates (conn, candidates, error);
+    g_object_unref (conn);
+  }
 
   if (ret)
     gst_element_post_message (GST_ELEMENT (conference),
-- 
1.5.6.5




More information about the farsight-commits mailing list