diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2020-06-26 17:01:01 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@gmail.com> | 2020-09-22 21:23:05 +0000 |
commit | 7ebf0f22aa2b4d8ae9153e310ea77dd7c8911822 (patch) | |
tree | 9b03a6e517298b27fdcd71ae2875834f855ee402 | |
parent | 703d833e2f2ad7b4d4853288b28f51529f79f97b (diff) | |
download | gnome-control-center-7ebf0f22aa2b4d8ae9153e310ea77dd7c8911822.tar.gz |
printers: Don't pass PpSamba references around
An internal GTask will hold a reference to it for the duration of the async calls.
-rw-r--r-- | panels/printers/pp-new-printer-dialog.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/panels/printers/pp-new-printer-dialog.c b/panels/printers/pp-new-printer-dialog.c index 04b6b0469..e17e36ce5 100644 --- a/panels/printers/pp-new-printer-dialog.c +++ b/panels/printers/pp-new-printer-dialog.c @@ -248,13 +248,9 @@ get_authenticated_samba_devices_cb (GObject *source_object, PpNewPrinterDialog *self = PP_NEW_PRINTER_DIALOG (data->dialog); g_autoptr(GPtrArray) devices = NULL; gboolean cancelled = FALSE; - PpSamba *samba = (PpSamba *) source_object; g_autoptr(GError) error = NULL; - g_object_ref (samba); - - devices = pp_samba_get_devices_finish (samba, res, &error); - g_object_unref (source_object); + devices = pp_samba_get_devices_finish (PP_SAMBA (source_object), res, &error); if (devices != NULL) { @@ -546,6 +542,7 @@ pp_new_printer_dialog_finalize (GObject *object) g_clear_object (&self->local_printer_icon); g_clear_object (&self->remote_printer_icon); g_clear_object (&self->authenticated_server_icon); + g_clear_object (&self->samba_host); if (self->num_of_dests > 0) { @@ -1131,16 +1128,13 @@ get_samba_host_devices_cb (GObject *source_object, { PpNewPrinterDialog *self = user_data; g_autoptr(GPtrArray) devices = NULL; - PpSamba *samba = (PpSamba *) source_object; g_autoptr(GError) error = NULL; - devices = pp_samba_get_devices_finish (samba, res, &error); - g_object_unref (source_object); + devices = pp_samba_get_devices_finish (PP_SAMBA (source_object), res, &error); if (devices != NULL) { - if ((gpointer) source_object == (gpointer) self->samba_host) - self->samba_host = NULL; + g_clear_object(&self->samba_host); add_devices_to_list (self, devices); @@ -1152,8 +1146,7 @@ get_samba_host_devices_cb (GObject *source_object, { g_warning ("%s", error->message); - if ((gpointer) source_object == (gpointer) self->samba_host) - self->samba_host = NULL; + g_clear_object(&self->samba_host); update_dialog_state (self); } @@ -1167,11 +1160,9 @@ get_samba_devices_cb (GObject *source_object, { PpNewPrinterDialog *self = user_data; g_autoptr(GPtrArray) devices = NULL; - PpSamba *samba = (PpSamba *) source_object; g_autoptr(GError) error = NULL; - devices = pp_samba_get_devices_finish (samba, res, &error); - g_object_unref (source_object); + devices = pp_samba_get_devices_finish (PP_SAMBA (source_object), res, &error); if (devices != NULL) { @@ -1828,7 +1819,7 @@ static void populate_devices_list (PpNewPrinterDialog *self) { GtkTreeViewColumn *column; - PpSamba *samba; + g_autoptr(PpSamba) samba = NULL; g_autoptr(GEmblem) emblem = NULL; PpCups *cups; g_autoptr(GIcon) icon = NULL; |