[telepathy-gabble/master] jingle-media-rtp.c: use node iteration wrappers

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon Jun 29 02:33:28 PDT 2009


---
 src/jingle-media-rtp.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/jingle-media-rtp.c b/src/jingle-media-rtp.c
index 5a2837c..e39411a 100644
--- a/src/jingle-media-rtp.c
+++ b/src/jingle-media-rtp.c
@@ -324,7 +324,7 @@ parse_payload_type (LmMessageNode *node)
   const gchar *name;
   guint clockrate = 0;
   guint channels = 0;
-  LmMessageNode *param;
+  NodeIter i;
 
   txt = lm_message_node_get_attribute (node, "id");
   if (txt == NULL)
@@ -351,8 +351,9 @@ parse_payload_type (LmMessageNode *node)
 
   p = jingle_media_rtp_codec_new (id, name, clockrate, channels, NULL);
 
-  for (param = node->children; param != NULL; param = param->next)
+  for (i = node_iter (node); i; i = node_iter_next (i))
     {
+      LmMessageNode *param = node_iter_data (i);
       const gchar *param_name, *param_value;
 
       if (tp_strdiff (lm_message_node_get_name (param), "parameter"))
@@ -502,9 +503,10 @@ parse_description (GabbleJingleContent *content,
   JingleMediaType mtype;
   GList *codecs = NULL;
   JingleCodec *p;
-  LmMessageNode *node;
   JingleDialect dialect = gabble_jingle_session_get_dialect (content->session);
   gboolean video_session = FALSE;
+  NodeIter i;
+  gboolean payload_error = FALSE;
 
   DEBUG ("node: %s", desc_node->name);
 
@@ -525,8 +527,9 @@ parse_description (GabbleJingleContent *content,
       video_session = !tp_strdiff (desc_ns, NS_GOOGLE_SESSION_VIDEO);
     }
 
-  for (node = desc_node->children; node; node = node->next)
+  for (i = node_iter (desc_node); i && !payload_error; i = node_iter_next (i))
     {
+      LmMessageNode *node = node_iter_data (i);
       if (tp_strdiff (lm_message_node_get_name (node), "payload-type"))
         continue;
 
@@ -552,12 +555,12 @@ parse_description (GabbleJingleContent *content,
       p = parse_payload_type (node);
 
       if (p == NULL)
-        break;
+        payload_error = TRUE;
       else
         codecs = g_list_append (codecs, p);
     }
 
-  if (node != NULL)
+  if (payload_error)
     {
       /* rollback these */
       jingle_media_rtp_free_codecs (codecs);
-- 
1.5.6.5




More information about the telepathy-commits mailing list