diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c index 5946cb5aa..2333e9257 100644 --- a/panels/printers/cc-printers-panel.c +++ b/panels/printers/cc-printers-panel.c @@ -700,8 +700,8 @@ on_printer_deleted (PpPrinterEntry *printer_entry, { CcPrintersPanel *self = (CcPrintersPanel*) user_data; GtkLabel *label; - gchar *notification_message; - gchar *printer_name; + g_autofree gchar *notification_message = NULL; + g_autofree gchar *printer_name = NULL; gtk_widget_hide (GTK_WIDGET (printer_entry)); @@ -718,10 +718,7 @@ on_printer_deleted (PpPrinterEntry *printer_entry, gtk_builder_get_object (self->builder, "notification-label"); gtk_label_set_label (label, notification_message); - g_free (notification_message); - self->deleted_printer_name = g_strdup (printer_name); - g_free (printer_name); gtk_revealer_set_reveal_child (self->notification, TRUE); @@ -1155,11 +1152,11 @@ filter_function (GtkListBoxRow *row, CcPrintersPanel *self = (CcPrintersPanel*) user_data; GtkWidget *search_entry; gboolean retval; - gchar *search; - gchar *name; - gchar *location; - gchar *printer_name; - gchar *printer_location; + g_autofree gchar *search = NULL; + g_autofree gchar *name = NULL; + g_autofree gchar *location = NULL; + g_autofree gchar *printer_name = NULL; + g_autofree gchar *printer_location = NULL; search_entry = (GtkWidget*) gtk_builder_get_object (self->builder, "search-entry"); @@ -1175,20 +1172,12 @@ filter_function (GtkListBoxRow *row, name = cc_util_normalize_casefold_and_unaccent (printer_name); location = cc_util_normalize_casefold_and_unaccent (printer_location); - g_free (printer_name); - g_free (printer_location); - search = cc_util_normalize_casefold_and_unaccent (gtk_entry_get_text (GTK_ENTRY (search_entry))); - retval = strstr (name, search) != NULL; if (location != NULL) retval = retval || (strstr (location, search) != NULL); - g_free (search); - g_free (name); - g_free (location); - return retval; } diff --git a/panels/printers/pp-details-dialog.c b/panels/printers/pp-details-dialog.c index fe68f9ad7..36c7daee0 100644 --- a/panels/printers/pp-details-dialog.c +++ b/panels/printers/pp-details-dialog.c @@ -125,15 +125,13 @@ printer_name_changed (GtkEditable *editable, { PpDetailsDialog *self = (PpDetailsDialog *) user_data; const gchar *name; - gchar *title; + g_autofree gchar *title = NULL; name = gtk_entry_get_text (GTK_ENTRY (self->printer_name_entry)); /* Translators: This is the title of the dialog. %s is the printer name. */ title = g_strdup_printf (_("%s Details"), name); gtk_label_set_label (self->dialog_title, title); - - g_free (title); } static void @@ -219,7 +217,7 @@ ppd_selection_dialog_response_cb (GtkDialog *dialog, if (response_id == GTK_RESPONSE_OK) { - gchar *ppd_name; + g_autofree gchar *ppd_name = NULL; ppd_name = pp_ppd_selection_dialog_get_ppd_name (self->pp_ppd_selection_dialog); @@ -234,8 +232,6 @@ ppd_selection_dialog_response_cb (GtkDialog *dialog, g_clear_pointer (&self->ppd_file_name, g_free); self->ppd_file_name = g_strdup (ppd_name); } - - g_free (ppd_name); } pp_ppd_selection_dialog_free (self->pp_ppd_selection_dialog); @@ -259,8 +255,8 @@ static void select_ppd_in_dialog (GtkButton *button, PpDetailsDialog *self) { - gchar *device_id = NULL; - gchar *manufacturer = NULL; + g_autofree gchar *device_id = NULL; + g_autofree gchar *manufacturer = NULL; g_clear_pointer (&self->ppd_file_name, g_free); self->ppd_file_name = g_strdup (cupsGetPPD (self->printer_name)); @@ -301,9 +297,6 @@ select_ppd_in_dialog (GtkButton *button, manufacturer, ppd_selection_dialog_response_cb, self); - - g_free (manufacturer); - g_free (device_id); } } @@ -334,7 +327,7 @@ select_ppd_manually (GtkButton *button, if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { - gchar *ppd_filename; + g_autofree gchar *ppd_filename = NULL; ppd_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); @@ -346,8 +339,6 @@ select_ppd_manually (GtkButton *button, set_ppd_cb, self); } - - g_free (ppd_filename); } gtk_widget_destroy (dialog); @@ -410,8 +401,8 @@ pp_details_dialog_new (GtkWindow *parent, gboolean sensitive) { PpDetailsDialog *self; - gchar *title; - gchar *printer_url; + g_autofree gchar *title = NULL; + g_autofree gchar *printer_url = NULL; self = g_object_new (PP_DETAILS_DIALOG_TYPE, "transient-for", parent, @@ -425,11 +416,9 @@ pp_details_dialog_new (GtkWindow *parent, /* Translators: This is the title of the dialog. %s is the printer name. */ title = g_strdup_printf (_("%s Details"), printer_name); gtk_label_set_label (self->dialog_title, title); - g_free (title); printer_url = g_strdup_printf ("%s", printer_address, ippPort (), printer_address); gtk_label_set_markup (GTK_LABEL (self->printer_address_label), printer_url); - g_free (printer_url); gtk_entry_set_text (GTK_ENTRY (self->printer_name_entry), printer_name); gtk_entry_set_text (GTK_ENTRY (self->printer_location_entry), printer_location); diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c index 15e65a574..f53ba217e 100644 --- a/panels/printers/pp-host.c +++ b/panels/printers/pp-host.c @@ -157,15 +157,15 @@ pp_host_new (const gchar *hostname) static gchar ** line_split (gchar *line) { - gboolean escaped = FALSE; - gboolean quoted = FALSE; - gboolean in_word = FALSE; - gchar **words = NULL; - gchar **result = NULL; - gchar *buffer = NULL; - gchar ch; - gint n = 0; - gint i, j = 0, k = 0; + gboolean escaped = FALSE; + gboolean quoted = FALSE; + gboolean in_word = FALSE; + gchar **words = NULL; + gchar **result = NULL; + g_autofree gchar *buffer = NULL; + gchar ch; + gint n = 0; + gint i, j = 0, k = 0; if (line) { @@ -233,7 +233,6 @@ line_split (gchar *line) result = g_strdupv (words); g_strfreev (words); - g_free (buffer); return result; } @@ -275,7 +274,6 @@ _pp_host_get_snmp_devices_thread (GTask *task, if (exit_status == 0 && stdout_string) { g_auto(GStrv) printer_informations = NULL; - g_autofree gchar *device_name = NULL; gint length; printer_informations = line_split (stdout_string); @@ -283,8 +281,10 @@ _pp_host_get_snmp_devices_thread (GTask *task, if (length >= 4) { + g_autofree gchar *device_name = NULL; + device_name = g_strdup (printer_informations[3]); - device_name = g_strcanon (device_name, ALLOWED_CHARACTERS, '-'); + g_strcanon (device_name, ALLOWED_CHARACTERS, '-'); is_network_device = g_strcmp0 (printer_informations[0], "network") == 0; device = g_object_new (PP_TYPE_PRINT_DEVICE, diff --git a/panels/printers/pp-ipp-option-widget.c b/panels/printers/pp-ipp-option-widget.c index 4435cdd00..430325ac3 100644 --- a/panels/printers/pp-ipp-option-widget.c +++ b/panels/printers/pp-ipp-option-widget.c @@ -230,18 +230,17 @@ set_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { - struct ComboSet *set_data = data; - gboolean found; - char *value; + struct ComboSet *set_data = data; + g_autofree gchar *value = NULL; gtk_tree_model_get (model, iter, VALUE_COLUMN, &value, -1); - found = (strcmp (value, set_data->value) == 0); - g_free (value); + if (strcmp (value, set_data->value) == 0) + { + gtk_combo_box_set_active_iter (set_data->combo, iter); + return TRUE; + } - if (found) - gtk_combo_box_set_active_iter (set_data->combo, iter); - - return found; + return FALSE; } static void @@ -374,7 +373,6 @@ construct_widget (PpIPPOptionWidget *self) { gboolean trivial_option = FALSE; gboolean result = FALSE; - gchar *value; gint i; if (self->option_supported) @@ -414,12 +412,13 @@ construct_widget (PpIPPOptionWidget *self) for (i = 0; i < self->option_supported->num_of_values; i++) { + g_autofree gchar *value = NULL; + value = g_strdup_printf ("%d", self->option_supported->attribute_values[i].integer_value); combo_box_append (self->combo, ipp_choice_translate (self->option_name, value), value); - g_free (value); } gtk_box_pack_start (GTK_BOX (self), self->combo, FALSE, FALSE, 0); @@ -464,8 +463,6 @@ static void update_widget_real (PpIPPOptionWidget *self) { IPPAttribute *attr = NULL; - gchar *value; - gchar *attr_name; if (self->option_default) { @@ -476,10 +473,9 @@ update_widget_real (PpIPPOptionWidget *self) } else if (self->ipp_attribute) { - attr_name = g_strdup_printf ("%s-default", self->option_name); + g_autofree gchar *attr_name = g_strdup_printf ("%s-default", self->option_name); attr = ipp_attribute_copy (g_hash_table_lookup (self->ipp_attribute, attr_name)); - g_free (attr_name); g_hash_table_unref (self->ipp_attribute); self->ipp_attribute = NULL; } @@ -505,15 +501,13 @@ update_widget_real (PpIPPOptionWidget *self) if (attr && attr->num_of_values > 0 && attr->attribute_type == IPP_ATTRIBUTE_TYPE_INTEGER) { - value = g_strdup_printf ("%d", attr->attribute_values[0].integer_value); + g_autofree gchar *value = g_strdup_printf ("%d", attr->attribute_values[0].integer_value); combo_box_set (self->combo, value); - g_free (value); } else { - value = g_strdup_printf ("%d", self->option_supported->attribute_values[0].integer_value); + g_autofree gchar *value = g_strdup_printf ("%d", self->option_supported->attribute_values[0].integer_value); combo_box_set (self->combo, value); - g_free (value); } g_signal_handlers_unblock_by_func (self->combo, combo_changed_cb, self); diff --git a/panels/printers/pp-job.c b/panels/printers/pp-job.c index 77ea6a249..7664222a3 100644 --- a/panels/printers/pp-job.c +++ b/panels/printers/pp-job.c @@ -285,14 +285,14 @@ _pp_job_get_attributes_thread (GTask *task, GCancellable *cancellable) { PpJob *self = PP_JOB (source_object); - ipp_attribute_t *attr = NULL; - GVariantBuilder builder; - GVariant *attributes = NULL; - gchar **attributes_names = task_data; - ipp_t *request; - ipp_t *response = NULL; - gchar *job_uri; - gint i, j, length = 0, n_attrs = 0; + ipp_attribute_t *attr = NULL; + GVariantBuilder builder; + GVariant *attributes = NULL; + gchar **attributes_names = task_data; + ipp_t *request; + ipp_t *response = NULL; + g_autofree gchar *job_uri = NULL; + gint i, j, length = 0, n_attrs = 0; job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", self->id); @@ -386,7 +386,6 @@ _pp_job_get_attributes_thread (GTask *task, attributes = g_variant_builder_end (&builder); } - g_free (job_uri); g_task_return_pointer (task, attributes, (GDestroyNotify) g_variant_unref); } @@ -428,12 +427,11 @@ _pp_job_authenticate_thread (GTask *task, gchar **auth_info = task_data; ipp_t *request; ipp_t *response = NULL; - gchar *job_uri; gint length; if (auth_info != NULL) { - job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", self->id); + g_autofree gchar *job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", self->id); length = g_strv_length (auth_info); @@ -450,8 +448,6 @@ _pp_job_authenticate_thread (GTask *task, if (response != NULL) ippDelete (response); - - g_free (job_uri); } g_task_return_boolean (task, result); diff --git a/panels/printers/pp-jobs-dialog.c b/panels/printers/pp-jobs-dialog.c index 875862ede..4aa0452e5 100644 --- a/panels/printers/pp-jobs-dialog.c +++ b/panels/printers/pp-jobs-dialog.c @@ -327,7 +327,6 @@ update_jobs_list_cb (GObject *source_object, GList *jobs, *l; PpJob *job; gchar **auth_info_required = NULL; - gchar *text; gint num_of_jobs, num_of_auth_jobs = 0; g_list_store_remove_all (self->store); @@ -383,12 +382,13 @@ update_jobs_list_cb (GObject *source_object, infobar = GTK_WIDGET (gtk_builder_get_object (GTK_BUILDER (self->builder), "authentication-infobar")); if (num_of_auth_jobs > 0) { + g_autofree gchar *text = NULL; + label = GTK_WIDGET (gtk_builder_get_object (GTK_BUILDER (self->builder), "authenticate-jobs-label")); /* Translators: This label shows how many jobs of this printer needs to be authenticated to be printed. */ text = g_strdup_printf (ngettext ("%u Job Requires Authentication", "%u Jobs Require Authentication", num_of_auth_jobs), num_of_auth_jobs); gtk_label_set_text (GTK_LABEL (label), text); - g_free (text); gtk_widget_show (infobar); } @@ -559,9 +559,9 @@ pp_jobs_dialog_new (GtkWindow *parent, GtkWidget *widget; g_autoptr(GError) error = NULL; gchar *objects[] = { "jobs-dialog", "authentication_popover", NULL }; - gchar *text; + g_autofree gchar *text = NULL; guint builder_result; - gchar *title; + g_autofree gchar *title = NULL; self = g_new0 (PpJobsDialog, 1); @@ -612,13 +612,11 @@ pp_jobs_dialog_new (GtkWindow *parent, /* Translators: This is the printer name for which we are showing the active jobs */ title = g_strdup_printf (C_("Printer jobs dialog title", "%s — Active Jobs"), printer_name); gtk_window_set_title (GTK_WINDOW (self->dialog), title); - g_free (title); /* Translators: The printer needs authentication info to print. */ text = g_strdup_printf (_("Enter credentials to print from %s."), printer_name); widget = GTK_WIDGET (gtk_builder_get_object (GTK_BUILDER (self->builder), "authentication-label")); gtk_label_set_text (GTK_LABEL (widget), text); - g_free (text); self->listbox = GTK_LIST_BOX (gtk_builder_get_object (self->builder, "jobs-listbox")); gtk_list_box_set_header_func (self->listbox, diff --git a/panels/printers/pp-maintenance-command.c b/panels/printers/pp-maintenance-command.c index ae59b7ce6..feb144ce7 100644 --- a/panels/printers/pp-maintenance-command.c +++ b/panels/printers/pp-maintenance-command.c @@ -204,11 +204,11 @@ _pp_maintenance_command_execute_thread (GTask *task, if (_pp_maintenance_command_is_supported (self->printer_name, self->command)) { - ipp_t *request; - ipp_t *response = NULL; - gchar *printer_uri; - gchar *file_name = NULL; - int fd = -1; + ipp_t *request; + ipp_t *response = NULL; + g_autofree gchar *printer_uri = NULL; + g_autofree gchar *file_name = NULL; + int fd = -1; printer_uri = g_strdup_printf ("ipp://localhost/printers/%s", self->printer_name); @@ -249,9 +249,6 @@ _pp_maintenance_command_execute_thread (GTask *task, ippDelete (response); } } - - g_free (file_name); - g_free (printer_uri); } else { @@ -302,8 +299,7 @@ _pp_maintenance_command_is_supported (const gchar *printer_name, gboolean is_supported = FALSE; ipp_t *request; ipp_t *response = NULL; - gchar *printer_uri; - gchar *command_lowercase; + g_autofree gchar *printer_uri = NULL; GPtrArray *available_commands = NULL; int i; @@ -342,7 +338,7 @@ _pp_maintenance_command_is_supported (const gchar *printer_name, if (available_commands != NULL) { - command_lowercase = g_ascii_strdown (command, -1); + g_autofree gchar *command_lowercase = g_ascii_strdown (command, -1); for (i = 0; i < available_commands->len; ++i) { const gchar *available_command = g_ptr_array_index (available_commands, i); @@ -353,12 +349,9 @@ _pp_maintenance_command_is_supported (const gchar *printer_name, } } - g_free (command_lowercase); g_ptr_array_free (available_commands, TRUE); } - g_free (printer_uri); - return is_supported; } diff --git a/panels/printers/pp-new-printer-dialog.c b/panels/printers/pp-new-printer-dialog.c index bf2769333..93e95e9a8 100644 --- a/panels/printers/pp-new-printer-dialog.c +++ b/panels/printers/pp-new-printer-dialog.c @@ -372,22 +372,21 @@ on_authentication_required (PpHost *host, gpointer user_data) { PpNewPrinterDialog *self = user_data; - gchar *text, *hostname; + g_autofree gchar *hostname = NULL; + g_autofree gchar *title = NULL; + g_autofree gchar *text = NULL; gtk_header_bar_set_subtitle (GTK_HEADER_BAR (WID ("headerbar")), NULL); gtk_header_bar_set_title (GTK_HEADER_BAR (WID ("headerbar")), _("Unlock Print Server")); g_object_get (G_OBJECT (host), "hostname", &hostname, NULL); /* Translators: Samba server needs authentication of the user to show list of its printers. */ - text = g_strdup_printf (_("Unlock %s."), hostname); - gtk_label_set_text (GTK_LABEL (WID ("authentication-title")), text); - g_free (text); + title = g_strdup_printf (_("Unlock %s."), hostname); + gtk_label_set_text (GTK_LABEL (WID ("authentication-title")), title); /* Translators: Samba server needs authentication of the user to show list of its printers. */ text = g_strdup_printf (_("Enter username and password to view printers on %s."), hostname); gtk_label_set_text (GTK_LABEL (WID ("authentication-text")), text); - g_free (hostname); - g_free (text); go_to_page (self, AUTHENTICATION_PAGE); @@ -686,17 +685,14 @@ add_device_to_list (PpNewPrinterDialog *self, { PpPrintDevice *store_device; GList *original_names_list = NULL; - gchar *canonicalized_name = NULL; - gchar *host_name; gint acquisistion_method; if (device) { if (pp_print_device_get_host_name (device) == NULL) { - host_name = guess_device_hostname (device); + g_autofree gchar *host_name = guess_device_hostname (device); g_object_set (device, "host-name", host_name, NULL); - g_free (host_name); } acquisistion_method = pp_print_device_get_acquisition_method (device); @@ -710,6 +706,8 @@ add_device_to_list (PpNewPrinterDialog *self, (acquisistion_method == ACQUISITION_METHOD_JETDIRECT || acquisistion_method == ACQUISITION_METHOD_LPD))) { + g_autofree gchar *canonicalized_name = NULL; + g_object_set (device, "device-original-name", pp_print_device_get_device_name (device), NULL); @@ -733,8 +731,6 @@ add_device_to_list (PpNewPrinterDialog *self, "device-name", canonicalized_name, NULL); - g_free (canonicalized_name); - if (pp_print_device_get_acquisition_method (device) == ACQUISITION_METHOD_DEFAULT_CUPS_SERVER) self->local_cups_devices = g_list_append (self->local_cups_devices, g_object_ref (device)); else @@ -1383,9 +1379,9 @@ parse_uri (const gchar *uri, gchar **host, gint *port) { - const gchar *tmp = NULL; - gchar *resulting_host = NULL; - gchar *position; + const gchar *tmp = NULL; + g_autofree gchar *resulting_host = NULL; + gchar *position; *port = PP_HOST_UNSET_PORT; @@ -1424,8 +1420,6 @@ parse_uri (const gchar *uri, G_URI_RESERVED_CHARS_GENERIC_DELIMITERS G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS); - g_free (resulting_host); - return TRUE; } @@ -1523,9 +1517,7 @@ search_address (const gchar *text, gboolean subfound; gboolean next_set; gboolean cont; - gchar *lowercase_name; - gchar *lowercase_location; - gchar *lowercase_text; + g_autofree gchar *lowercase_text = NULL; gchar **words; gint words_length = 0; gint i; @@ -1533,7 +1525,6 @@ search_address (const gchar *text, lowercase_text = g_ascii_strdown (text, -1); words = g_strsplit_set (lowercase_text, " ", -1); - g_free (lowercase_text); if (words) { @@ -1542,6 +1533,9 @@ search_address (const gchar *text, cont = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->store), &iter); while (cont) { + g_autofree gchar *lowercase_name = NULL; + g_autofree gchar *lowercase_location = NULL; + gtk_tree_model_get (GTK_TREE_MODEL (self->store), &iter, DEVICE_COLUMN, &device, -1); @@ -1567,8 +1561,6 @@ search_address (const gchar *text, DEVICE_VISIBLE_COLUMN, subfound, -1); - g_free (lowercase_location); - g_free (lowercase_name); g_object_unref (device); cont = gtk_tree_model_iter_next (GTK_TREE_MODEL (self->store), &iter); @@ -1715,7 +1707,6 @@ set_device (PpNewPrinterDialog *self, GtkTreeIter *iter) { GtkTreeIter titer; - gchar *description; gint acquisition_method; if (device != NULL) @@ -1732,6 +1723,8 @@ set_device (PpNewPrinterDialog *self, acquisition_method == ACQUISITION_METHOD_SAMBA_HOST || acquisition_method == ACQUISITION_METHOD_SAMBA)) { + g_autofree gchar *description = NULL; + description = get_local_scheme_description_from_uri (pp_print_device_get_device_uri (device)); if (description == NULL) { @@ -1758,8 +1751,6 @@ set_device (PpNewPrinterDialog *self, DEVICE_VISIBLE_COLUMN, TRUE, DEVICE_COLUMN, device, -1); - - g_free (description); } else if (pp_print_device_is_authenticated_server (device) && pp_print_device_get_host_name (device) != NULL) @@ -1886,9 +1877,8 @@ cell_data_func (GtkTreeViewColumn *tree_column, { PpNewPrinterDialog *self = user_data; gboolean selected = FALSE; - gchar *name = NULL; - gchar *description = NULL; - gchar *text; + g_autofree gchar *name = NULL; + g_autofree gchar *description = NULL; selected = gtk_tree_selection_iter_is_selected (gtk_tree_view_get_selection (self->treeview), iter); @@ -1899,6 +1889,8 @@ cell_data_func (GtkTreeViewColumn *tree_column, if (name != NULL) { + g_autofree gchar *text = NULL; + if (description != NULL) { if (selected) @@ -1919,12 +1911,7 @@ cell_data_func (GtkTreeViewColumn *tree_column, g_object_set (G_OBJECT (cell), "markup", text, NULL); - - g_free (text); } - - g_free (name); - g_free (description); } static void @@ -2026,7 +2013,6 @@ ppd_selection_cb (GtkDialog *_dialog, GList *original_names_list = NULL; gchar *ppd_name; gchar *ppd_display_name; - gchar *printer_name; guint window_id = 0; gint acquisition_method; @@ -2044,6 +2030,8 @@ ppd_selection_cb (GtkDialog *_dialog, acquisition_method == ACQUISITION_METHOD_LPD) && ppd_display_name != NULL) { + g_autofree gchar *printer_name = NULL; + g_object_set (self->new_device, "device-name", ppd_display_name, "device-original-name", ppd_display_name, @@ -2067,8 +2055,6 @@ ppd_selection_cb (GtkDialog *_dialog, "device-name", printer_name, "device-original-name", printer_name, NULL); - - g_free (printer_name); } emit_pre_response (self, diff --git a/panels/printers/pp-new-printer.c b/panels/printers/pp-new-printer.c index 3045a0ee4..bcd4c2d5c 100644 --- a/panels/printers/pp-new-printer.c +++ b/panels/printers/pp-new-printer.c @@ -485,15 +485,15 @@ get_ppd_item_from_output (GVariant *output) { GVariantIter *iter; GVariant *item; - gchar *driver; - gchar *match; for (j = 0; j < G_N_ELEMENTS (match_levels) && !ppd_item; j++) { g_variant_get (array, "a(ss)", &iter); while ((item = g_variant_iter_next_value (iter)) && !ppd_item) { - g_variant_get (item, "(ss)", &driver, &match); + const gchar *driver, *match; + + g_variant_get (item, "(&s&s)", &driver, &match); if (g_str_equal (match, match_levels[j])) { ppd_item = g_new0 (PPDName, 1); @@ -511,8 +511,6 @@ get_ppd_item_from_output (GVariant *output) ppd_item->ppd_match_level = PPD_NO_MATCH; } - g_free (driver); - g_free (match); g_variant_unref (item); } } diff --git a/panels/printers/pp-options-dialog.c b/panels/printers/pp-options-dialog.c index d88980aca..7bc32920f 100644 --- a/panels/printers/pp-options-dialog.c +++ b/panels/printers/pp-options-dialog.c @@ -867,11 +867,11 @@ test_page_cb (GtkButton *button, if (self->printer_name) { - const gchar *const dirs[] = { "/usr/share/cups", - "/usr/local/share/cups", - NULL }; - const gchar *datadir = NULL; - gchar *filename = NULL; + const gchar *const dirs[] = { "/usr/share/cups", + "/usr/local/share/cups", + NULL }; + const gchar *datadir = NULL; + g_autofree gchar *filename = NULL; datadir = getenv ("CUPS_DATADIR"); if (datadir != NULL) @@ -896,8 +896,6 @@ test_page_cb (GtkButton *button, NULL, print_test_page_cb, NULL); - - g_free (filename); } else { diff --git a/panels/printers/pp-ppd-option-widget.c b/panels/printers/pp-ppd-option-widget.c index ae8b89369..11c54fcec 100644 --- a/panels/printers/pp-ppd-option-widget.c +++ b/panels/printers/pp-ppd-option-widget.c @@ -288,18 +288,18 @@ set_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { - struct ComboSet *set_data = data; - gboolean found; - char *value; + struct ComboSet *set_data = data; + g_autofree gchar *value = NULL; gtk_tree_model_get (model, iter, VALUE_COLUMN, &value, -1); - found = (strcmp (value, set_data->value) == 0); - g_free (value); - if (found) - gtk_combo_box_set_active_iter (set_data->combo, iter); + if (strcmp (value, set_data->value) == 0) + { + gtk_combo_box_set_active_iter (set_data->combo, iter); + return TRUE; + } - return found; + return FALSE; } static void @@ -467,7 +467,6 @@ update_widget_real (PpPPDOptionWidget *self) { ppd_option_t *option = NULL, *iter; ppd_file_t *ppd_file; - gchar *value = NULL; gint i; if (self->option) @@ -504,6 +503,8 @@ update_widget_real (PpPPDOptionWidget *self) if (option) { + g_autofree gchar *value = NULL; + for (i = 0; i < option->num_choices; i++) if (option->choices[i].marked) value = g_strdup (option->choices[i].choice); @@ -539,8 +540,6 @@ update_widget_real (PpPPDOptionWidget *self) default: break; } - - g_free (value); } if (option->conflicted) diff --git a/panels/printers/pp-printer-entry.c b/panels/printers/pp-printer-entry.c index 665550a80..0ac802996 100644 --- a/panels/printers/pp-printer-entry.c +++ b/panels/printers/pp-printer-entry.c @@ -202,13 +202,13 @@ markers_cmp (gconstpointer a, } static gchar * -sanitize_printer_model (gchar *printer_make_and_model) +sanitize_printer_model (const gchar *printer_make_and_model) { - gchar *breakpoint = NULL, *tmp = NULL, *tmp2 = NULL; - gchar *printer_model = NULL; - gchar backup; - size_t length = 0; - gchar *forbiden[] = { + gchar *breakpoint = NULL, *tmp2 = NULL; + g_autofree gchar *tmp = NULL; + gchar backup; + size_t length = 0; + gchar *forbiden[] = { "foomatic", ",", "hpijs", @@ -236,14 +236,12 @@ sanitize_printer_model (gchar *printer_make_and_model) *breakpoint = backup; if (length > 0) - printer_model = g_strndup (printer_make_and_model, length); + return g_strndup (printer_make_and_model, length); } else - printer_model = g_strdup (printer_make_and_model); + return g_strdup (printer_make_and_model); - g_free (tmp); - - return printer_model; + return NULL; } static gboolean @@ -283,7 +281,7 @@ supply_levels_draw_cb (GtkWidget *widget, { GtkStyleContext *context; gboolean is_empty = TRUE; - gchar *tooltip_text = NULL; + g_autofree gchar *tooltip_text = NULL; gint width; gint height; int i; @@ -303,7 +301,6 @@ supply_levels_draw_cb (GtkWidget *widget, gchar **marker_colorsv = NULL; gchar **marker_namesv = NULL; gchar **marker_typesv = NULL; - gchar *tmp = NULL; gtk_style_context_save (context); @@ -366,12 +363,10 @@ supply_levels_draw_cb (GtkWidget *widget, if (tooltip_text) { - tmp = g_strdup_printf ("%s\n%s", - tooltip_text, - ((MarkerItem*) tmp_list->data)->name); - g_free (tooltip_text); - tooltip_text = tmp; - tmp = NULL; + g_autofree gchar *old_tooltip_text = g_steal_pointer (&tooltip_text); + tooltip_text = g_strdup_printf ("%s\n%s", + old_tooltip_text, + ((MarkerItem*) tmp_list->data)->name); } else tooltip_text = g_strdup_printf ("%s", @@ -394,7 +389,6 @@ supply_levels_draw_cb (GtkWidget *widget, if (tooltip_text) { gtk_widget_set_tooltip_text (widget, tooltip_text); - g_free (tooltip_text); } else { @@ -587,7 +581,7 @@ get_jobs_cb (GObject *source_object, PpPrinter *printer = PP_PRINTER (source_object); g_autoptr(GError) error = NULL; GList *jobs; - gchar *button_label; + g_autofree gchar *button_label = NULL; gint num_jobs; jobs = pp_printer_get_jobs_finish (printer, result, &error); @@ -625,8 +619,6 @@ get_jobs_cb (GObject *source_object, pp_jobs_dialog_update (self->pp_jobs_dialog); } - g_free (button_label); - g_clear_object (&self->get_jobs_cancellable); } @@ -735,21 +727,20 @@ PpPrinterEntry * pp_printer_entry_new (cups_dest_t printer, gboolean is_authorized) { - PpPrinterEntry *self; - cups_ptype_t printer_type = 0; - gboolean is_accepting_jobs = TRUE; - gboolean ink_supply_is_empty; - gchar *instance; - gchar *printer_uri = NULL; - gchar *location = NULL; - gchar *printer_icon_name = NULL; - gchar *default_icon_name = NULL; - gchar *printer_make_and_model = NULL; - gchar *reason = NULL; - gchar **printer_reasons = NULL; - gchar *status = NULL; - gchar *printer_status = NULL; - int i, j; + PpPrinterEntry *self; + cups_ptype_t printer_type = 0; + gboolean is_accepting_jobs = TRUE; + gboolean ink_supply_is_empty; + g_autofree gchar *instance = NULL; + const gchar *printer_uri = NULL; + const gchar *location = NULL; + g_autofree gchar *printer_icon_name = NULL; + const gchar *printer_make_and_model = NULL; + const gchar *reason = NULL; + gchar **printer_reasons = NULL; + g_autofree gchar *status = NULL; + g_autofree gchar *printer_status = NULL; + int i, j; static const char * const reasons[] = { "toner-low", @@ -949,7 +940,6 @@ pp_printer_entry_new (cups_dest_t printer, gtk_image_set_from_icon_name (self->printer_icon, printer_icon_name, GTK_ICON_SIZE_DIALOG); gtk_label_set_text (self->printer_status, printer_status); - g_free (printer_status); gtk_label_set_text (self->printer_name_label, instance); g_signal_handlers_block_by_func (self->printer_default_checkbutton, set_as_default_printer, self); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->printer_default_checkbutton), printer.is_default); @@ -987,10 +977,6 @@ pp_printer_entry_new (cups_dest_t printer, gtk_widget_set_sensitive (GTK_WIDGET (self->printer_default_checkbutton), self->is_authorized); gtk_widget_set_sensitive (GTK_WIDGET (self->remove_printer_menuitem), self->is_authorized); - g_free (instance); - g_free (printer_icon_name); - g_free (default_icon_name); - return self; } diff --git a/panels/printers/pp-printer.c b/panels/printers/pp-printer.c index b21e7fa46..8e3444ec8 100644 --- a/panels/printers/pp-printer.c +++ b/panels/printers/pp-printer.c @@ -133,10 +133,10 @@ printer_rename_thread (GTask *task, gpointer task_data, GCancellable *cancellable) { - PpPrinter *self = PP_PRINTER (source_object); - gboolean result; - gchar *new_printer_name = task_data; - gchar *old_printer_name; + PpPrinter *self = PP_PRINTER (source_object); + gboolean result; + gchar *new_printer_name = task_data; + g_autofree gchar *old_printer_name = NULL; g_object_get (self, "printer-name", &old_printer_name, NULL); @@ -147,8 +147,6 @@ printer_rename_thread (GTask *task, g_object_set (self, "printer-name", new_printer_name, NULL); } - g_free (old_printer_name); - g_task_return_boolean (task, result); } @@ -162,7 +160,6 @@ printer_rename_dbus_cb (GObject *source_object, gboolean result = FALSE; g_autoptr(GError) error = NULL; GTask *task = user_data; - gchar *old_printer_name; output = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object), res, @@ -171,6 +168,7 @@ printer_rename_dbus_cb (GObject *source_object, if (output != NULL) { + g_autofree gchar *old_printer_name = NULL; const gchar *ret_error; self = g_task_get_source_object (task); @@ -189,7 +187,6 @@ printer_rename_dbus_cb (GObject *source_object, g_task_return_boolean (task, result); - g_free (old_printer_name); g_variant_unref (output); } else @@ -217,11 +214,12 @@ get_bus_cb (GObject *source_object, GDBusConnection *bus; g_autoptr(GError) error = NULL; GTask *task = user_data; - gchar *printer_name; bus = g_bus_get_finish (res, &error); if (bus != NULL) { + g_autofree gchar *printer_name = NULL; + g_object_get (g_task_get_source_object (task), "printer-name", &printer_name, NULL); @@ -239,8 +237,6 @@ get_bus_cb (GObject *source_object, g_task_get_cancellable (task), printer_rename_dbus_cb, task); - - g_free (printer_name); } else { @@ -292,24 +288,24 @@ get_jobs_thread (GTask *task, gpointer task_data, GCancellable *cancellable) { - ipp_attribute_t *attr = NULL; - static gchar *printer_attributes[] = { "auth-info-required" }; - GetJobsData *get_jobs_data = task_data; - cups_job_t *jobs = NULL; - PpPrinter *self = PP_PRINTER (source_object); - gboolean auth_info_is_required; - PpJob *job; - ipp_t *job_request; - ipp_t *job_response; - ipp_t *printer_request; - ipp_t *printer_response; - gchar *job_uri; - gchar *printer_uri; - gchar **auth_info_required = NULL; - gchar *printer_name; - GList *list = NULL; - gint num_jobs; - gint i, j; + ipp_attribute_t *attr = NULL; + static gchar *printer_attributes[] = { "auth-info-required" }; + GetJobsData *get_jobs_data = task_data; + cups_job_t *jobs = NULL; + PpPrinter *self = PP_PRINTER (source_object); + gboolean auth_info_is_required; + PpJob *job; + ipp_t *job_request; + ipp_t *job_response; + ipp_t *printer_request; + ipp_t *printer_response; + gchar *job_uri; + gchar *printer_uri; + gchar **auth_info_required = NULL; + g_autofree gchar *printer_name = NULL; + GList *list = NULL; + gint num_jobs; + gint i, j; g_object_get (self, "printer-name", &printer_name, NULL); @@ -323,7 +319,7 @@ get_jobs_thread (GTask *task, auth_info_is_required = FALSE; if (jobs[i].state == IPP_JOB_HELD) { - job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", jobs[i].id); + g_autofree gchar *job_uri = g_strdup_printf ("ipp://localhost/jobs/%d", jobs[i].id); job_request = ippNewRequest (IPP_GET_JOB_ATTRIBUTES); ippAddString (job_request, IPP_TAG_OPERATION, IPP_TAG_URI, @@ -334,8 +330,6 @@ get_jobs_thread (GTask *task, "requested-attributes", NULL, "job-hold-until"); job_response = cupsDoRequest (CUPS_HTTP_DEFAULT, job_request, "/"); - g_free (job_uri); - if (job_response != NULL) { attr = ippFindAttribute (job_response, "job-hold-until", IPP_TAG_ZERO); @@ -345,7 +339,7 @@ get_jobs_thread (GTask *task, if (auth_info_required == NULL) { - printer_uri = g_strdup_printf ("ipp://localhost/printers/%s", printer_name); + g_autofree gchar *printer_uri = g_strdup_printf ("ipp://localhost/printers/%s", printer_name); printer_request = ippNewRequest (IPP_GET_PRINTER_ATTRIBUTES); ippAddString (printer_request, IPP_TAG_OPERATION, IPP_TAG_URI, @@ -356,8 +350,6 @@ get_jobs_thread (GTask *task, "requested-attributes", 1, NULL, (const char **) printer_attributes); printer_response = cupsDoRequest (CUPS_HTTP_DEFAULT, printer_request, "/"); - g_free (printer_uri); - if (printer_response != NULL) { attr = ippFindAttribute (printer_response, "auth-info-required", IPP_TAG_ZERO); @@ -389,7 +381,6 @@ get_jobs_thread (GTask *task, g_strfreev (auth_info_required); cupsFreeJobs (num_jobs, jobs); - g_free (printer_name); if (g_task_set_return_on_cancel (task, FALSE)) { @@ -438,7 +429,6 @@ pp_printer_delete_dbus_cb (GObject *source_object, gboolean result = FALSE; g_autoptr(GError) error = NULL; GTask *task = user_data; - gchar *printer_name; output = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object), res, @@ -447,7 +437,8 @@ pp_printer_delete_dbus_cb (GObject *source_object, if (output != NULL) { - const gchar *ret_error; + g_autofree gchar *printer_name = NULL; + const gchar *ret_error; g_object_get (g_task_get_source_object (task), "printer-name", &printer_name, NULL); @@ -459,7 +450,6 @@ pp_printer_delete_dbus_cb (GObject *source_object, g_task_return_boolean (task, result); - g_free (printer_name); g_variant_unref (output); } else @@ -478,11 +468,12 @@ pp_printer_delete_cb (GObject *source_object, GDBusConnection *bus; g_autoptr(GError) error = NULL; GTask *task = user_data; - gchar *printer_name; bus = g_bus_get_finish (res, &error); if (bus != NULL) { + g_autofree gchar *printer_name = NULL; + g_object_get (g_task_get_source_object (task), "printer-name", &printer_name, NULL); @@ -499,8 +490,6 @@ pp_printer_delete_cb (GObject *source_object, g_task_get_cancellable (task), pp_printer_delete_dbus_cb, task); - - g_free (printer_name); } else { @@ -556,17 +545,17 @@ print_file_thread (GTask *task, gpointer task_data, GCancellable *cancellable) { - PpPrinter *self = PP_PRINTER (source_object); - PrintFileData *print_file_data; - cups_ptype_t type = 0; - cups_dest_t *dest = NULL; - const gchar *printer_type = NULL; - gboolean ret = FALSE; - gchar *printer_name = NULL; - gchar *printer_uri = NULL; - gchar *resource = NULL; - ipp_t *response = NULL; - ipp_t *request; + PpPrinter *self = PP_PRINTER (source_object); + PrintFileData *print_file_data; + cups_ptype_t type = 0; + cups_dest_t *dest = NULL; + const gchar *printer_type = NULL; + gboolean ret = FALSE; + g_autofree gchar *printer_name = NULL; + g_autofree gchar *printer_uri = NULL; + g_autofree gchar *resource = NULL; + ipp_t *response = NULL; + ipp_t *request; g_object_get (self, "printer-name", &printer_name, NULL); dest = cupsGetNamedDest (CUPS_HTTP_DEFAULT, printer_name, NULL); @@ -613,10 +602,6 @@ print_file_thread (GTask *task, ippDelete (response); } - g_free (printer_name); - g_free (printer_uri); - g_free (resource); - if (g_task_set_return_on_cancel (task, FALSE)) { g_task_return_boolean (task, ret); diff --git a/panels/printers/pp-samba.c b/panels/printers/pp-samba.c index 8f37a8ad2..80add734b 100644 --- a/panels/printers/pp-samba.c +++ b/panels/printers/pp-samba.c @@ -282,11 +282,8 @@ list_dir (SMBCCTX *smb_context, while (dir && (dirent = smbclient_readdir (smb_context, dir))) { - gchar *device_name; - gchar *device_uri; - gchar *subdirname = NULL; - gchar *subpath = NULL; - gchar *uri; + g_autofree gchar *subdirname = NULL; + g_autofree gchar *subpath = NULL; if (dirent->smbc_type == SMBC_WORKGROUP) { @@ -302,6 +299,10 @@ list_dir (SMBCCTX *smb_context, if (dirent->smbc_type == SMBC_PRINTER_SHARE) { + g_autofree gchar *uri = NULL; + g_autofree gchar *device_name = NULL; + g_autofree gchar *device_uri = NULL; + uri = g_strdup_printf ("%s/%s", dirname, dirent->name); device_uri = g_uri_escape_string (uri, G_URI_RESERVED_CHARS_GENERIC_DELIMITERS @@ -309,7 +310,7 @@ list_dir (SMBCCTX *smb_context, FALSE); device_name = g_strdup (dirent->name); - device_name = g_strcanon (device_name, ALLOWED_CHARACTERS, '-'); + g_strcanon (device_name, ALLOWED_CHARACTERS, '-'); device = g_object_new (PP_TYPE_PRINT_DEVICE, "device-uri", device_uri, @@ -321,10 +322,6 @@ list_dir (SMBCCTX *smb_context, "host-name", dirname, NULL); - g_free (device_name); - g_free (device_uri); - g_free (uri); - data->devices->devices = g_list_append (data->devices->devices, device); } @@ -335,8 +332,6 @@ list_dir (SMBCCTX *smb_context, subpath, cancellable, data); - g_free (subdirname); - g_free (subpath); } } diff --git a/panels/printers/pp-utils.c b/panels/printers/pp-utils.c index c0814444e..fbeb3c67e 100644 --- a/panels/printers/pp-utils.c +++ b/panels/printers/pp-utils.c @@ -111,17 +111,15 @@ get_tag_value (const gchar *tag_string, const gchar *tag_name) static gchar * normalize (const gchar *input_string) { - gchar *tmp = NULL; - gchar *res = NULL; gchar *result = NULL; gint i, j = 0, k = -1; if (input_string) { - tmp = g_strstrip (g_ascii_strdown (input_string, -1)); + g_autofree gchar *tmp = g_strstrip (g_ascii_strdown (input_string, -1)); if (tmp) { - res = g_new (gchar, 2 * strlen (tmp)); + g_autofree gchar *res = g_new (gchar, 2 * strlen (tmp)); for (i = 0; i < strlen (tmp); i++) { @@ -154,8 +152,6 @@ normalize (const gchar *input_string) res[j] = '\0'; result = g_strdup (res); - g_free (tmp); - g_free (res); } } @@ -263,11 +259,11 @@ printer_rename (const gchar *old_name, cups_dest_t *dest = NULL; cups_job_t *jobs = NULL; GDBusConnection *bus; - const char *printer_location = NULL; - const char *printer_info = NULL; - const char *printer_uri = NULL; - const char *device_uri = NULL; - const char *job_sheets = NULL; + const gchar *printer_location = NULL; + const gchar *printer_info = NULL; + const gchar *printer_uri = NULL; + const gchar *device_uri = NULL; + const gchar *job_sheets = NULL; gboolean result = FALSE; gboolean accepting = TRUE; gboolean printer_paused = FALSE; @@ -275,16 +271,16 @@ printer_rename (const gchar *old_name, gboolean printer_shared = FALSE; g_autoptr(GError) error = NULL; http_t *http; - gchar *ppd_link; - gchar *ppd_filename = NULL; + g_autofree gchar *ppd_link = NULL; + g_autofree gchar *ppd_filename = NULL; gchar **sheets = NULL; gchar **users_allowed = NULL; gchar **users_denied = NULL; gchar **member_names = NULL; - gchar *start_sheet = NULL; - gchar *end_sheet = NULL; - gchar *error_policy = NULL; - gchar *op_policy = NULL; + const gchar *start_sheet = NULL; + const gchar *end_sheet = NULL; + g_autofree gchar *error_policy = NULL; + g_autofree gchar *op_policy = NULL; ipp_t *request; ipp_t *response; gint i; @@ -498,8 +494,6 @@ printer_rename (const gchar *old_name, if (ppd_link) { g_unlink (ppd_link); - g_free (ppd_link); - g_free (ppd_filename); } num_dests = cupsGetDests (&dests); @@ -525,8 +519,6 @@ printer_rename (const gchar *old_name, printer_set_accepting_jobs (old_name, accepting, NULL); cupsFreeDests (num_dests, dests); - g_free (op_policy); - g_free (error_policy); if (sheets) g_strfreev (sheets); if (users_allowed) @@ -1285,7 +1277,7 @@ get_ipp_attributes_func (gpointer user_data) GIAData *data = (GIAData *) user_data; ipp_t *request; ipp_t *response = NULL; - gchar *printer_uri; + g_autofree gchar *printer_uri = NULL; char **requested_attrs = NULL; gint i, j, length = 0; @@ -1377,8 +1369,6 @@ get_ipp_attributes_func (gpointer user_data) g_free (requested_attrs[i]); g_free (requested_attrs); - g_free (printer_uri); - get_ipp_attributes_cb (data); return NULL; @@ -1764,13 +1754,12 @@ get_ppds_attribute_func (gpointer user_data) ppd_file_t *ppd_file; ppd_attr_t *ppd_attr; GPAData *data = (GPAData *) user_data; - gchar *ppd_filename; gint i; data->result = g_new0 (gchar *, g_strv_length (data->ppds_names) + 1); for (i = 0; data->ppds_names[i]; i++) { - ppd_filename = g_strdup (cupsGetServerPPD (CUPS_HTTP_DEFAULT, data->ppds_names[i])); + g_autofree gchar *ppd_filename = g_strdup (cupsGetServerPPD (CUPS_HTTP_DEFAULT, data->ppds_names[i])); if (ppd_filename) { ppd_file = ppdOpenFile (ppd_filename); @@ -1784,7 +1773,6 @@ get_ppds_attribute_func (gpointer user_data) } g_unlink (ppd_filename); - g_free (ppd_filename); } } @@ -1943,8 +1931,6 @@ get_ppd_names_async_dbus_scb (GObject *source_object, { GVariantIter *iter; GVariant *item; - gchar *driver; - gchar *match; for (j = 0; j < G_N_ELEMENTS (match_levels) && n < data->count; j++) { @@ -1954,8 +1940,10 @@ get_ppd_names_async_dbus_scb (GObject *source_object, while ((item = g_variant_iter_next_value (iter))) { + const gchar *driver, *match; + g_variant_get (item, - "(ss)", + "(&s&s)", &driver, &match); @@ -1980,8 +1968,6 @@ get_ppd_names_async_dbus_scb (GObject *source_object, n++; } - g_free (driver); - g_free (match); g_variant_unref (item); } } @@ -2186,11 +2172,7 @@ get_device_attributes_async_dbus_cb (GObject *source_object, if (data->device_uri) { - gchar *key; - gchar *value; - gchar *number; - gchar *endptr; - gchar *suffix; + g_autofree gchar *suffix = NULL; g_variant_get (devices_variant, "a{ss}", @@ -2198,16 +2180,20 @@ get_device_attributes_async_dbus_cb (GObject *source_object, while ((item = g_variant_iter_next_value (iter))) { + const gchar *key, *value; + g_variant_get (item, - "{ss}", + "{&s&s}", &key, &value); if (g_str_equal (value, data->device_uri)) { - number = g_strrstr (key, ":"); + gchar *number = g_strrstr (key, ":"); if (number != NULL) { + gchar *endptr; + number++; index = g_ascii_strtoll (number, &endptr, 10); if (index == 0 && endptr == (number)) @@ -2215,8 +2201,6 @@ get_device_attributes_async_dbus_cb (GObject *source_object, } } - g_free (key); - g_free (value); g_variant_unref (item); } @@ -2228,11 +2212,10 @@ get_device_attributes_async_dbus_cb (GObject *source_object, while ((item = g_variant_iter_next_value (iter))) { - gchar *key; - gchar *value; + const gchar *key, *value; g_variant_get (item, - "{ss}", + "{&s&s}", &key, &value); @@ -2249,12 +2232,8 @@ get_device_attributes_async_dbus_cb (GObject *source_object, } } - g_free (key); - g_free (value); g_variant_unref (item); } - - g_free (suffix); } g_variant_unref (devices_variant); @@ -2631,14 +2610,6 @@ get_all_ppds_func (gpointer user_data) ipp_t *request; ipp_t *response; GList *list; - const gchar *ppd_make_and_model; - const gchar *ppd_device_id; - const gchar *ppd_name; - const gchar *ppd_product; - const gchar *ppd_make; - gchar *mfg; - gchar *mfg_normalized; - gchar *mdl; gchar *manufacturer_display_name; gint i, j; @@ -2671,21 +2642,21 @@ get_all_ppds_func (gpointer user_data) for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) { + const gchar *ppd_device_id = NULL; + const gchar *ppd_make_and_model = NULL; + const gchar *ppd_name = NULL; + const gchar *ppd_product = NULL; + const gchar *ppd_make = NULL; + g_autofree gchar *mdl = NULL; + g_autofree gchar *mfg = NULL; + g_autofree gchar *mfg_normalized = NULL; + while (attr != NULL && ippGetGroupTag (attr) != IPP_TAG_PRINTER) attr = ippNextAttribute (response); if (attr == NULL) break; - ppd_device_id = NULL; - ppd_make_and_model = NULL; - ppd_name = NULL; - ppd_product = NULL; - ppd_make = NULL; - mfg = NULL; - mfg_normalized = NULL; - mdl = NULL; - while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER) { if (g_strcmp0 (ippGetName (attr), "ppd-device-id") == 0 && @@ -2779,10 +2750,6 @@ get_all_ppds_func (gpointer user_data) } } - g_free (mdl); - g_free (mfg); - g_free (mfg_normalized); - if (attr == NULL) break; } @@ -2961,27 +2928,23 @@ ppd_list_free (PPDList *list) gchar * get_standard_manufacturers_name (const gchar *name) { - gchar *normalized_name; - gchar *result = NULL; + g_autofree gchar *normalized_name = NULL; gint i; - if (name) + if (name == NULL) + return NULL; + + normalized_name = normalize (name); + + for (i = 0; i < G_N_ELEMENTS (manufacturers_names); i++) { - normalized_name = normalize (name); - - for (i = 0; i < G_N_ELEMENTS (manufacturers_names); i++) + if (g_strcmp0 (manufacturers_names[i].normalized_name, normalized_name) == 0) { - if (g_strcmp0 (manufacturers_names[i].normalized_name, normalized_name) == 0) - { - result = g_strdup (manufacturers_names[i].display_name); - break; - } + return g_strdup (manufacturers_names[i].display_name); } - - g_free (normalized_name); } - return result; + return NULL; } typedef struct @@ -3307,7 +3270,7 @@ typedef struct } GCDData; static gint -get_suffix_index (gchar *string) +get_suffix_index (const gchar *string) { gchar *number; gchar *endptr; @@ -3361,21 +3324,19 @@ get_cups_devices_async_dbus_cb (GObject *source_object, { GVariantIter *iter; GVariant *item; - gchar *key; - gchar *value; gint index = -1, max_index = -1, i; g_variant_get (devices_variant, "a{ss}", &iter); while ((item = g_variant_iter_next_value (iter))) { - g_variant_get (item, "{ss}", &key, &value); + const gchar *key, *value; + + g_variant_get (item, "{&s&s}", &key, &value); index = get_suffix_index (key); if (index > max_index) max_index = index; - g_free (key); - g_free (value); g_variant_unref (item); } @@ -3387,7 +3348,9 @@ get_cups_devices_async_dbus_cb (GObject *source_object, g_variant_get (devices_variant, "a{ss}", &iter); while ((item = g_variant_iter_next_value (iter))) { - g_variant_get (item, "{ss}", &key, &value); + const gchar *key, *value; + + g_variant_get (item, "{&s&s}", &key, &value); index = get_suffix_index (key); if (index >= 0) @@ -3419,8 +3382,6 @@ get_cups_devices_async_dbus_cb (GObject *source_object, g_object_set (devices[index], "acquisition-method", ACQUISITION_METHOD_DEFAULT_CUPS_SERVER, NULL); } - g_free (key); - g_free (value); g_variant_unref (item); } @@ -3459,9 +3420,9 @@ get_cups_devices_async_dbus_cb (GObject *source_object, { if (!g_cancellable_is_cancelled (data->cancellable)) { - GVariantBuilder *include_scheme_builder = NULL; - GVariantBuilder *exclude_scheme_builder = NULL; - gchar *backend_name; + GVariantBuilder *include_scheme_builder = NULL; + GVariantBuilder *exclude_scheme_builder = NULL; + g_autofree gchar *backend_name = NULL; backend_name = data->backend_list->data; @@ -3480,7 +3441,6 @@ get_cups_devices_async_dbus_cb (GObject *source_object, exclude_scheme_builder = create_other_backends_array (); } - g_free (backend_name); data->backend_list = g_list_remove_link (data->backend_list, data->backend_list); g_dbus_connection_call (G_DBUS_CONNECTION (g_object_ref (source_object)), @@ -3542,7 +3502,7 @@ get_cups_devices_async (GCancellable *cancellable, GVariantBuilder include_scheme_builder; GCDData *data; g_autoptr(GError) error = NULL; - gchar *backend_name; + g_autofree gchar *backend_name = NULL; bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); if (!bus) @@ -3564,7 +3524,6 @@ get_cups_devices_async (GCancellable *cancellable, g_variant_builder_init (&include_scheme_builder, G_VARIANT_TYPE ("as")); g_variant_builder_add (&include_scheme_builder, "s", backend_name); - g_free (backend_name); data->backend_list = g_list_remove_link (data->backend_list, data->backend_list); g_dbus_connection_call (bus, @@ -3665,9 +3624,7 @@ canonicalize_device_name (GList *device_names, gboolean already_present; GList *iter; gsize len; - gchar *name = NULL; - gchar *new_name; - gchar *lower_name; + g_autofree gchar *name = NULL; gchar *occurrence; gint name_index, j; static const char * const residues[] = { @@ -3725,7 +3682,7 @@ canonicalize_device_name (GList *device_names, /* Remove common strings found in driver names */ for (j = 0; j < G_N_ELEMENTS (residues); j++) { - lower_name = g_ascii_strdown (name, -1); + g_autofree gchar *lower_name = g_ascii_strdown (name, -1); occurrence = g_strrstr (lower_name, residues[j]); if (occurrence != NULL) @@ -3733,8 +3690,6 @@ canonicalize_device_name (GList *device_names, occurrence[0] = '\0'; name[strlen (lower_name)] = '\0'; } - - g_free (lower_name); } /* Remove trailing "-" */ @@ -3756,8 +3711,10 @@ canonicalize_device_name (GList *device_names, name_index = 2; already_present = FALSE; - do + while (TRUE) { + g_autofree gchar *new_name = NULL; + if (already_present) { new_name = g_strdup_printf ("%s-%d", name, name_index); @@ -3787,14 +3744,9 @@ canonicalize_device_name (GList *device_names, already_present = TRUE; } - if (already_present) - g_free (new_name); - - } while (already_present); - - g_free (name); - - return new_name; + if (!already_present) + return g_steal_pointer (&new_name); + } } void