[gnome-control-center] printers: Don't pass PpMaintenanceCommand references around



commit 7c1f84b4d39106b65aabf6d016b53ba609fc6cc6
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Jun 26 16:47:54 2020 +1200

    printers: Don't pass PpMaintenanceCommand references around
    
    An internal GTask will hold a reference to it for the duration of the async call.

 panels/printers/pp-new-printer.c    |  7 +++----
 panels/printers/pp-options-dialog.c |  8 ++------
 panels/printers/pp-printer-entry.c  | 20 ++++++--------------
 3 files changed, 11 insertions(+), 24 deletions(-)
---
diff --git a/panels/printers/pp-new-printer.c b/panels/printers/pp-new-printer.c
index 8c316c28e..072a760d3 100644
--- a/panels/printers/pp-new-printer.c
+++ b/panels/printers/pp-new-printer.c
@@ -1094,13 +1094,11 @@ pp_maintenance_command_execute_cb (GObject      *source_object,
                                    GAsyncResult *res,
                                    gpointer      user_data)
 {
-  PpMaintenanceCommand *command = (PpMaintenanceCommand *) source_object;
   g_autoptr(GError)     error = NULL;
   PCData               *data;
   gboolean              result;
 
-  result = pp_maintenance_command_execute_finish (command, res, &error);
-  g_object_unref (source_object);
+  result = pp_maintenance_command_execute_finish (PP_MAINTENANCE_COMMAND (source_object), res, &error);
 
   if (result)
     {
@@ -1193,7 +1191,8 @@ printer_configure_async (PpNewPrinter *self)
   /* Run autoconfiguration of printer */
   if (!self->is_network_device)
     {
-      PpMaintenanceCommand *command;
+      g_autoptr(PpMaintenanceCommand) command = NULL;
+
       command = pp_maintenance_command_new (self->name,
                                             "autoconfigure",
                                             NULL,
diff --git a/panels/printers/pp-options-dialog.c b/panels/printers/pp-options-dialog.c
index 05f8e72df..3a4966d43 100644
--- a/panels/printers/pp-options-dialog.c
+++ b/panels/printers/pp-options-dialog.c
@@ -789,11 +789,7 @@ pp_maintenance_command_execute_cb (GObject      *source_object,
                                    GAsyncResult *res,
                                    gpointer      user_data)
 {
-  PpMaintenanceCommand *command = (PpMaintenanceCommand *) source_object;
-
-  pp_maintenance_command_execute_finish (command, res, NULL);
-
-  g_object_unref (command);
+  pp_maintenance_command_execute_finish (PP_MAINTENANCE_COMMAND(source_object), res, NULL);
 }
 
 static gchar *
@@ -867,7 +863,7 @@ test_page_cb (PpOptionsDialog *self)
         }
       else
         {
-          PpMaintenanceCommand *command;
+          g_autoptr(PpMaintenanceCommand) command = NULL;
 
           command = pp_maintenance_command_new (self->printer_name,
                                                 "PrintSelfTestPage",
diff --git a/panels/printers/pp-printer-entry.c b/panels/printers/pp-printer-entry.c
index f74a44090..a943f65e5 100644
--- a/panels/printers/pp-printer-entry.c
+++ b/panels/printers/pp-printer-entry.c
@@ -485,24 +485,20 @@ check_clean_heads_maintenance_command_cb (GObject      *source_object,
                                           gpointer      user_data)
 {
   PpPrinterEntry       *self = user_data;
-  PpMaintenanceCommand *command = (PpMaintenanceCommand *) source_object;
   gboolean              is_supported = FALSE;
   g_autoptr(GError)     error = NULL;
 
-  is_supported = pp_maintenance_command_is_supported_finish (command, res, &error);
+  is_supported = pp_maintenance_command_is_supported_finish (PP_MAINTENANCE_COMMAND (source_object), res, 
&error);
   if (error != NULL)
     {
       g_debug ("Could not check 'Clean' maintenance command: %s", error->message);
-      goto out;
+      return;
     }
 
   if (is_supported)
     {
       gtk_widget_show (GTK_WIDGET (self->clean_heads_menuitem));
     }
-
- out:
-  g_object_unref (source_object);
 }
 
 static void
@@ -525,15 +521,11 @@ clean_heads_maintenance_command_cb (GObject      *source_object,
                                     GAsyncResult *res,
                                     gpointer      user_data)
 {
-  PpPrinterEntry       *self = user_data;
-  PpMaintenanceCommand *command = (PpMaintenanceCommand *) source_object;
-  g_autoptr(GError)     error = NULL;
+  PpPrinterEntry *self = user_data;
+  g_autoptr(GError) error = NULL;
 
-  if (!pp_maintenance_command_execute_finish (command, res, &error))
-    {
-      g_warning ("Error cleaning print heads for %s: %s", self->printer_name, error->message);
-    }
-  g_object_unref (source_object);
+  if (!pp_maintenance_command_execute_finish (PP_MAINTENANCE_COMMAND (source_object), res, &error))
+    g_warning ("Error cleaning print heads for %s: %s", self->printer_name, error->message);
 }
 
 static void


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