From c2d4b79b69fe18cc647ad9f2a68b2024f793281e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 11 Jul 2013 17:18:58 +0200 Subject: [PATCH] server: let context ref the server So that we don't risk losing the server object early anc crash. --- gst/rtsp-server/rtsp-server.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gst/rtsp-server/rtsp-server.c b/gst/rtsp-server/rtsp-server.c index f9766b6..631826a 100644 --- a/gst/rtsp-server/rtsp-server.c +++ b/gst/rtsp-server/rtsp-server.c @@ -1093,6 +1093,7 @@ free_client_context (ClientContext * ctx) GST_RTSP_SERVER_UNLOCK (ctx->server); g_object_unref (ctx->client); + g_object_unref (ctx->server); g_slice_free (ClientContext, ctx); return G_SOURCE_REMOVE; @@ -1106,8 +1107,6 @@ unmanage_client (GstRTSPClient * client, ClientContext * ctx) GST_DEBUG_OBJECT (server, "unmanage client %p", client); - g_object_ref (server); - GST_RTSP_SERVER_LOCK (server); priv->clients = g_list_remove (priv->clients, ctx); GST_RTSP_SERVER_UNLOCK (server); @@ -1122,8 +1121,6 @@ unmanage_client (GstRTSPClient * client, ClientContext * ctx) } else { free_client_context (ctx); } - - g_object_unref (server); } /* add the client context to the active list of clients, takes ownership @@ -1139,7 +1136,7 @@ manage_client (GstRTSPServer * server, GstRTSPClient * client) GST_DEBUG_OBJECT (server, "manage client %p", client); ctx = g_slice_new0 (ClientContext); - ctx->server = server; + ctx->server = g_object_ref (server); ctx->client = client; GST_RTSP_SERVER_LOCK (server); -- 2.7.4