From: David Svensson Fors Date: Tue, 12 Jun 2012 12:33:35 +0000 (+0200) Subject: rtsp-client: changed session media iteration X-Git-Tag: 1.19.3~495^2~1364 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;ds=sidebyside;h=8f5d82be6d3c185524507d3509db5adc0179da9e;p=platform%2Fupstream%2Fgstreamer.git rtsp-client: changed session media iteration In client_unlink_session: now don't iterate in session->medias list where items are removed by gst_rtsp_session_release_media. Instead, repeatedly remove the first item. --- diff --git a/gst/rtsp-server/rtsp-client.c b/gst/rtsp-server/rtsp-client.c index a70d388..49ad173 100644 --- a/gst/rtsp-server/rtsp-client.c +++ b/gst/rtsp-server/rtsp-client.c @@ -114,15 +114,13 @@ gst_rtsp_client_init (GstRTSPClient * client) static void client_unlink_session (GstRTSPClient * client, GstRTSPSession * session) { - GList *medias; - /* unlink all media managed in this session */ - for (medias = session->medias; medias; medias = g_list_next (medias)) { - GstRTSPSessionMedia *media = medias->data; + while (g_list_length (session->medias) > 0) { + GstRTSPSessionMedia *media = g_list_first (session->medias)->data; gst_rtsp_session_media_set_state (media, GST_STATE_NULL); unlink_session_streams (client, session, media); - /* unmanage the media in the session. */ + /* unmanage the media in the session. this will modify session->medias */ gst_rtsp_session_release_media (session, media); } }