summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2020-06-26 17:01:01 +1200
committerRobert Ancell <robert.ancell@gmail.com>2020-09-22 21:23:05 +0000
commit7ebf0f22aa2b4d8ae9153e310ea77dd7c8911822 (patch)
tree9b03a6e517298b27fdcd71ae2875834f855ee402
parent703d833e2f2ad7b4d4853288b28f51529f79f97b (diff)
downloadgnome-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.c23
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;