[gnome-builder] langserv-client: hold onto self reference during close operation



commit ea66ac145c45c37c4f7edf0ecfd61e72c17268a5
Author: Christian Hergert <chergert redhat com>
Date:   Sun Oct 30 15:39:11 2016 -0700

    langserv-client: hold onto self reference during close operation
    
    We don't really need to do this, but it's nice to hold into a reference
    to the langserv while we asynchronously close the rpc client.

 libide/langserv/ide-langserv-client.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/libide/langserv/ide-langserv-client.c b/libide/langserv/ide-langserv-client.c
index f9e72f8..4ccd55c 100644
--- a/libide/langserv/ide-langserv-client.c
+++ b/libide/langserv/ide-langserv-client.c
@@ -623,7 +623,7 @@ ide_langserv_client_notification (IdeLangservClient *self,
   g_assert (IDE_IS_LANGSERV_CLIENT (self));
   g_assert (method != NULL);
   g_assert (params != NULL);
-  g_assert (rpc_client != NULL);
+  g_assert (JSONRPC_IS_CLIENT (rpc_client));
 
   IDE_TRACE_MSG ("Notification: %s", method);
 
@@ -946,11 +946,15 @@ ide_langserv_client_shutdown_cb (GObject      *object,
                                  GAsyncResult *result,
                                  gpointer      user_data)
 {
+  g_autoptr(IdeLangservClient) self = user_data;
   JsonrpcClient *client = (JsonrpcClient *)object;
   g_autoptr(GError) error = NULL;
 
   IDE_ENTRY;
 
+  g_assert (JSONRPC_IS_CLIENT (client));
+  g_assert (IDE_IS_LANGSERV_CLIENT (self));
+
   if (!jsonrpc_client_call_finish (client, result, NULL, &error))
     g_warning ("%s", error->message);
 
@@ -975,7 +979,7 @@ ide_langserv_client_stop (IdeLangservClient *self)
                                  NULL,
                                  NULL,
                                  ide_langserv_client_shutdown_cb,
-                                 NULL);
+                                 g_object_ref (self));
       g_clear_object (&priv->rpc_client);
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]