printers: Simplify finalize/dispose methods
Use g_clear_* functions to simplify code and ensure values are set to NULL after freeing.
This commit is contained in:
parent
4042cb5d33
commit
85604ab4f0
8 changed files with 70 additions and 184 deletions
|
@ -279,89 +279,42 @@ cc_printers_panel_dispose (GObject *object)
|
|||
{
|
||||
CcPrintersPanel *self = CC_PRINTERS_PANEL (object);
|
||||
|
||||
if (self->pp_new_printer_dialog)
|
||||
g_clear_object (&self->pp_new_printer_dialog);
|
||||
|
||||
free_dests (CC_PRINTERS_PANEL (object));
|
||||
|
||||
g_clear_pointer (&self->new_printer_name, g_free);
|
||||
g_clear_pointer (&self->new_printer_location, g_free);
|
||||
g_clear_pointer (&self->new_printer_make_and_model, g_free);
|
||||
|
||||
g_clear_pointer (&self->renamed_printer_name, g_free);
|
||||
g_clear_pointer (&self->old_printer_name, g_free);
|
||||
|
||||
if (self->builder)
|
||||
{
|
||||
g_object_unref (self->builder);
|
||||
self->builder = NULL;
|
||||
}
|
||||
|
||||
if (self->lockdown_settings)
|
||||
{
|
||||
g_object_unref (self->lockdown_settings);
|
||||
self->lockdown_settings = NULL;
|
||||
}
|
||||
|
||||
if (self->permission)
|
||||
{
|
||||
g_object_unref (self->permission);
|
||||
self->permission = NULL;
|
||||
}
|
||||
|
||||
g_cancellable_cancel (self->subscription_renew_cancellable);
|
||||
g_clear_object (&self->subscription_renew_cancellable);
|
||||
|
||||
g_cancellable_cancel (self->actualize_printers_list_cancellable);
|
||||
g_clear_object (&self->actualize_printers_list_cancellable);
|
||||
g_cancellable_cancel (self->cups_status_check_cancellable);
|
||||
g_cancellable_cancel (self->get_all_ppds_cancellable);
|
||||
|
||||
detach_from_cups_notifier (CC_PRINTERS_PANEL (object));
|
||||
|
||||
g_cancellable_cancel (self->cups_status_check_cancellable);
|
||||
g_clear_object (&self->cups_status_check_cancellable);
|
||||
|
||||
if (self->cups_status_check_id > 0)
|
||||
{
|
||||
g_source_remove (self->cups_status_check_id);
|
||||
self->cups_status_check_id = 0;
|
||||
}
|
||||
|
||||
if (self->remove_printer_timeout_id > 0)
|
||||
{
|
||||
g_source_remove (self->remove_printer_timeout_id);
|
||||
self->remove_printer_timeout_id = 0;
|
||||
}
|
||||
|
||||
if (self->all_ppds_list)
|
||||
{
|
||||
ppd_list_free (self->all_ppds_list);
|
||||
self->all_ppds_list = NULL;
|
||||
}
|
||||
|
||||
if (self->get_all_ppds_cancellable)
|
||||
{
|
||||
g_cancellable_cancel (self->get_all_ppds_cancellable);
|
||||
g_object_unref (self->get_all_ppds_cancellable);
|
||||
self->get_all_ppds_cancellable = NULL;
|
||||
}
|
||||
|
||||
if (self->deleted_printer_name != NULL)
|
||||
{
|
||||
PpPrinter *printer;
|
||||
|
||||
printer = pp_printer_new (self->deleted_printer_name);
|
||||
g_clear_pointer (&self->deleted_printer_name, g_free);
|
||||
|
||||
PpPrinter *printer = pp_printer_new (self->deleted_printer_name);
|
||||
pp_printer_delete_async (printer,
|
||||
NULL,
|
||||
printer_removed_cb,
|
||||
NULL);
|
||||
}
|
||||
|
||||
if (self->action != NULL)
|
||||
g_variant_unref (self->action);
|
||||
|
||||
g_clear_object (&self->pp_new_printer_dialog);
|
||||
g_clear_pointer (&self->new_printer_name, g_free);
|
||||
g_clear_pointer (&self->new_printer_location, g_free);
|
||||
g_clear_pointer (&self->new_printer_make_and_model, g_free);
|
||||
g_clear_pointer (&self->renamed_printer_name, g_free);
|
||||
g_clear_pointer (&self->old_printer_name, g_free);
|
||||
g_clear_object (&self->builder);
|
||||
g_clear_object (&self->lockdown_settings);
|
||||
g_clear_object (&self->permission);
|
||||
g_clear_object (&self->subscription_renew_cancellable);
|
||||
g_clear_object (&self->actualize_printers_list_cancellable);
|
||||
g_clear_object (&self->cups_status_check_cancellable);
|
||||
g_clear_handle_id (&self->cups_status_check_id, g_source_remove);
|
||||
g_clear_handle_id (&self->remove_printer_timeout_id, g_source_remove);
|
||||
g_clear_object (&self->get_all_ppds_cancellable);
|
||||
g_clear_pointer (&self->deleted_printer_name, g_free);
|
||||
g_clear_pointer (&self->action, g_variant_unref);
|
||||
g_clear_pointer (&self->printer_entries, g_hash_table_destroy);
|
||||
g_clear_pointer (&self->all_ppds_list, ppd_list_free);
|
||||
free_dests (self);
|
||||
|
||||
G_OBJECT_CLASS (cc_printers_panel_parent_class)->dispose (object);
|
||||
}
|
||||
|
|
|
@ -128,41 +128,14 @@ pp_ipp_option_widget_finalize (GObject *object)
|
|||
{
|
||||
PpIPPOptionWidget *widget = PP_IPP_OPTION_WIDGET (object);
|
||||
|
||||
if (widget->option_name)
|
||||
{
|
||||
g_free (widget->option_name);
|
||||
widget->option_name = NULL;
|
||||
}
|
||||
g_cancellable_cancel (widget->cancellable);
|
||||
|
||||
if (widget->printer_name)
|
||||
{
|
||||
g_free (widget->printer_name);
|
||||
widget->printer_name = NULL;
|
||||
}
|
||||
|
||||
if (widget->option_supported)
|
||||
{
|
||||
ipp_attribute_free (widget->option_supported);
|
||||
widget->option_supported = NULL;
|
||||
}
|
||||
|
||||
if (widget->option_default)
|
||||
{
|
||||
ipp_attribute_free (widget->option_default);
|
||||
widget->option_default = NULL;
|
||||
}
|
||||
|
||||
if (widget->ipp_attribute)
|
||||
{
|
||||
g_hash_table_unref (widget->ipp_attribute);
|
||||
widget->ipp_attribute = NULL;
|
||||
}
|
||||
|
||||
if (widget->cancellable)
|
||||
{
|
||||
g_cancellable_cancel (widget->cancellable);
|
||||
g_object_unref (widget->cancellable);
|
||||
}
|
||||
g_clear_pointer (&widget->option_name, g_free);
|
||||
g_clear_pointer (&widget->printer_name, g_free);
|
||||
g_clear_pointer (&widget->option_supported, ipp_attribute_free);
|
||||
g_clear_pointer (&widget->option_default, ipp_attribute_free);
|
||||
g_clear_pointer (&widget->ipp_attribute, g_hash_table_unref);
|
||||
g_clear_object (&widget->cancellable);
|
||||
|
||||
G_OBJECT_CLASS (pp_ipp_option_widget_parent_class)->finalize (object);
|
||||
}
|
||||
|
|
|
@ -236,8 +236,8 @@ pp_job_finalize (GObject *object)
|
|||
{
|
||||
PpJob *self = PP_JOB (object);
|
||||
|
||||
g_free (self->title);
|
||||
g_strfreev (self->auth_info_required);
|
||||
g_clear_pointer (&self->title, g_free);
|
||||
g_clear_pointer (&self->auth_info_required, g_strfreev);
|
||||
|
||||
G_OBJECT_CLASS (pp_job_parent_class)->finalize (object);
|
||||
}
|
||||
|
|
|
@ -561,41 +561,33 @@ pp_new_printer_dialog_init (PpNewPrinterDialog *dialog)
|
|||
populate_devices_list (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
free_devices_list (GList *devices)
|
||||
{
|
||||
g_list_free_full (devices, (GDestroyNotify) g_object_unref);
|
||||
}
|
||||
|
||||
static void
|
||||
pp_new_printer_dialog_finalize (GObject *object)
|
||||
{
|
||||
PpNewPrinterDialog *dialog = PP_NEW_PRINTER_DIALOG (object);
|
||||
|
||||
g_cancellable_cancel (dialog->remote_host_cancellable);
|
||||
g_cancellable_cancel (dialog->cancellable);
|
||||
|
||||
dialog->text_renderer = NULL;
|
||||
dialog->icon_renderer = NULL;
|
||||
|
||||
if (dialog->host_search_timeout_id != 0)
|
||||
{
|
||||
g_source_remove (dialog->host_search_timeout_id);
|
||||
dialog->host_search_timeout_id = 0;
|
||||
}
|
||||
|
||||
if (dialog->remote_host_cancellable)
|
||||
{
|
||||
g_cancellable_cancel (dialog->remote_host_cancellable);
|
||||
g_clear_object (&dialog->remote_host_cancellable);
|
||||
}
|
||||
|
||||
if (dialog->cancellable)
|
||||
{
|
||||
g_cancellable_cancel (dialog->cancellable);
|
||||
g_clear_object (&dialog->cancellable);
|
||||
}
|
||||
|
||||
g_clear_handle_id (&dialog->host_search_timeout_id, g_source_remove);
|
||||
g_clear_object (&dialog->remote_host_cancellable);
|
||||
g_clear_object (&dialog->cancellable);
|
||||
g_clear_pointer (&dialog->dialog, gtk_widget_destroy);
|
||||
|
||||
g_clear_pointer (&dialog->list, ppd_list_free);
|
||||
|
||||
if (dialog->builder)
|
||||
g_clear_object (&dialog->builder);
|
||||
|
||||
g_list_free_full (dialog->local_cups_devices, (GDestroyNotify) g_object_unref);
|
||||
dialog->local_cups_devices = NULL;
|
||||
g_clear_object (&dialog->builder);
|
||||
g_clear_pointer (&dialog->local_cups_devices, free_devices_list);
|
||||
g_clear_object (&dialog->local_printer_icon);
|
||||
g_clear_object (&dialog->remote_printer_icon);
|
||||
g_clear_object (&dialog->authenticated_server_icon);
|
||||
|
||||
if (dialog->num_of_dests > 0)
|
||||
{
|
||||
|
@ -604,10 +596,6 @@ pp_new_printer_dialog_finalize (GObject *object)
|
|||
dialog->dests = NULL;
|
||||
}
|
||||
|
||||
g_clear_object (&dialog->local_printer_icon);
|
||||
g_clear_object (&dialog->remote_printer_icon);
|
||||
g_clear_object (&dialog->authenticated_server_icon);
|
||||
|
||||
G_OBJECT_CLASS (pp_new_printer_dialog_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
@ -928,8 +916,7 @@ group_physical_devices_cb (gchar ***device_uris,
|
|||
{
|
||||
for (iter = dialog->local_cups_devices; iter != NULL; iter = iter->next)
|
||||
set_device (dialog, (PpPrintDevice *) iter->data, NULL);
|
||||
g_list_free_full (dialog->local_cups_devices, g_object_unref);
|
||||
dialog->local_cups_devices = NULL;
|
||||
g_clear_pointer (&dialog->local_cups_devices, free_devices_list);
|
||||
}
|
||||
|
||||
update_dialog_state (dialog);
|
||||
|
@ -1158,7 +1145,7 @@ get_cups_devices_cb (GList *devices,
|
|||
}
|
||||
}
|
||||
|
||||
g_list_free_full (devices, (GDestroyNotify) g_object_unref);
|
||||
free_devices_list (devices);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -167,45 +167,20 @@ pp_ppd_option_widget_finalize (GObject *object)
|
|||
{
|
||||
PpPPDOptionWidget *widget = PP_PPD_OPTION_WIDGET (object);
|
||||
|
||||
g_cancellable_cancel (widget->cancellable);
|
||||
if (widget->ppd_filename)
|
||||
g_unlink (widget->ppd_filename);
|
||||
|
||||
g_clear_pointer (&widget->option, cups_option_free);
|
||||
g_clear_pointer (&widget->printer_name, g_free);
|
||||
g_clear_pointer (&widget->option_name, g_free);
|
||||
if (widget->destination)
|
||||
{
|
||||
if (widget->option)
|
||||
{
|
||||
cups_option_free (widget->option);
|
||||
widget->option = NULL;
|
||||
}
|
||||
|
||||
if (widget->printer_name)
|
||||
{
|
||||
g_free (widget->printer_name);
|
||||
widget->printer_name = NULL;
|
||||
}
|
||||
|
||||
if (widget->option_name)
|
||||
{
|
||||
g_free (widget->option_name);
|
||||
widget->option_name = NULL;
|
||||
}
|
||||
|
||||
if (widget->destination)
|
||||
{
|
||||
cupsFreeDests (1, widget->destination);
|
||||
widget->destination = NULL;
|
||||
}
|
||||
|
||||
if (widget->ppd_filename)
|
||||
{
|
||||
g_unlink (widget->ppd_filename);
|
||||
g_free (widget->ppd_filename);
|
||||
widget->ppd_filename = NULL;
|
||||
}
|
||||
|
||||
if (widget->cancellable)
|
||||
{
|
||||
g_cancellable_cancel (widget->cancellable);
|
||||
g_object_unref (widget->cancellable);
|
||||
}
|
||||
cupsFreeDests (1, widget->destination);
|
||||
widget->destination = NULL;
|
||||
}
|
||||
g_clear_pointer (&widget->ppd_filename, g_free);
|
||||
g_clear_object (&widget->cancellable);
|
||||
|
||||
G_OBJECT_CLASS (pp_ppd_option_widget_parent_class)->finalize (object);
|
||||
}
|
||||
|
|
|
@ -1001,6 +1001,9 @@ pp_printer_entry_dispose (GObject *object)
|
|||
{
|
||||
PpPrinterEntry *self = PP_PRINTER_ENTRY (object);
|
||||
|
||||
g_cancellable_cancel (self->get_jobs_cancellable);
|
||||
g_cancellable_cancel (self->check_clean_heads_cancellable);
|
||||
|
||||
if (self->pp_details_dialog != NULL)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_data (self->pp_details_dialog, self);
|
||||
|
@ -1018,13 +1021,8 @@ pp_printer_entry_dispose (GObject *object)
|
|||
g_clear_pointer (&self->printer_make_and_model, g_free);
|
||||
g_clear_pointer (&self->printer_hostname, g_free);
|
||||
g_clear_pointer (&self->inklevel, ink_level_data_free);
|
||||
|
||||
g_cancellable_cancel (self->get_jobs_cancellable);
|
||||
g_clear_object (&self->get_jobs_cancellable);
|
||||
|
||||
g_cancellable_cancel (self->check_clean_heads_cancellable);
|
||||
g_clear_object (&self->check_clean_heads_cancellable);
|
||||
|
||||
g_clear_object (&self->clean_command);
|
||||
|
||||
G_OBJECT_CLASS (pp_printer_entry_parent_class)->dispose (object);
|
||||
|
|
|
@ -45,7 +45,7 @@ pp_printer_dispose (GObject *object)
|
|||
{
|
||||
PpPrinter *self = PP_PRINTER (object);
|
||||
|
||||
g_free (self->printer_name);
|
||||
g_clear_pointer (&self->printer_name, g_free);
|
||||
|
||||
G_OBJECT_CLASS (pp_printer_parent_class)->dispose (object);
|
||||
}
|
||||
|
|
|
@ -48,11 +48,11 @@ pp_samba_finalize (GObject *object)
|
|||
{
|
||||
PpSamba *self = PP_SAMBA (object);
|
||||
|
||||
g_free (self->server);
|
||||
g_free (self->share);
|
||||
g_free (self->workgroup);
|
||||
g_free (self->username);
|
||||
g_free (self->password);
|
||||
g_clear_pointer (&self->server, g_free);
|
||||
g_clear_pointer (&self->share, g_free);
|
||||
g_clear_pointer (&self->workgroup, g_free);
|
||||
g_clear_pointer (&self->username, g_free);
|
||||
g_clear_pointer (&self->password, g_free);
|
||||
|
||||
G_OBJECT_CLASS (pp_samba_parent_class)->finalize (object);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue