From 745900dd48bb6701faef960d5e7e52478f18027e Mon Sep 17 00:00:00 2001 From: Luca Ognibene Date: Sun, 11 Oct 2009 13:57:54 +0200 Subject: [PATCH] client: call weak-unref on client->sessions from finalize Fixes bug #596305 --- gst/rtsp-server/rtsp-client.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gst/rtsp-server/rtsp-client.c b/gst/rtsp-server/rtsp-client.c index 6dec049672..050969df4d 100644 --- a/gst/rtsp-server/rtsp-client.c +++ b/gst/rtsp-server/rtsp-client.c @@ -85,9 +85,17 @@ static void gst_rtsp_client_finalize (GObject * obj) { GstRTSPClient *client = GST_RTSP_CLIENT (obj); + GList *walk; g_message ("finalize client %p", client); + /* remove weak-ref from sessions */ + for (walk = client->sessions; walk; walk = g_list_next (walk)) { + GstRTSPSession *msession = (GstRTSPSession *) walk->data; + g_object_weak_unref (G_OBJECT (msession), + (GWeakNotify) client_session_finalized, client); + } + g_list_free (client->sessions); gst_rtsp_connection_free (client->connection);