[gnome-control-center] printers: Remove unnecessary checks on result of g_variant_get
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] printers: Remove unnecessary checks on result of g_variant_get
- Date: Mon, 30 Mar 2020 03:28:52 +0000 (UTC)
commit 2b9815dbf84a7b99470d9ee76b29fe2515c1e4ed
Author: Robert Ancell <robert ancell canonical com>
Date: Thu Nov 21 21:56:08 2019 +1300
printers: Remove unnecessary checks on result of g_variant_get
This always returns a value or hits an assertion.
panels/printers/pp-new-printer.c | 57 +++++-----
panels/printers/pp-utils.c | 219 +++++++++++++++++++--------------------
2 files changed, 129 insertions(+), 147 deletions(-)
---
diff --git a/panels/printers/pp-new-printer.c b/panels/printers/pp-new-printer.c
index 0e4593feb..a44c6bf1b 100644
--- a/panels/printers/pp-new-printer.c
+++ b/panels/printers/pp-new-printer.c
@@ -480,32 +480,29 @@ get_ppd_item_from_output (GVariant *output)
g_autoptr(GVariant) array = NULL;
g_variant_get (output, "(@a(ss))", &array);
- if (array)
+ for (j = 0; j < G_N_ELEMENTS (match_levels) && !ppd_item; j++)
{
- for (j = 0; j < G_N_ELEMENTS (match_levels) && !ppd_item; j++)
- {
- g_autoptr(GVariantIter) iter = NULL;
- const gchar *driver, *match;
+ g_autoptr(GVariantIter) iter = NULL;
+ const gchar *driver, *match;
- g_variant_get (array, "a(ss)", &iter);
- while (g_variant_iter_next (iter, "(&s&s)", &driver, &match) && !ppd_item)
+ g_variant_get (array, "a(ss)", &iter);
+ while (g_variant_iter_next (iter, "(&s&s)", &driver, &match) && !ppd_item)
+ {
+ if (g_str_equal (match, match_levels[j]))
{
- if (g_str_equal (match, match_levels[j]))
- {
- ppd_item = g_new0 (PPDName, 1);
- ppd_item->ppd_name = g_strdup (driver);
-
- if (g_strcmp0 (match, "exact-cmd") == 0)
- ppd_item->ppd_match_level = PPD_EXACT_CMD_MATCH;
- else if (g_strcmp0 (match, "exact") == 0)
- ppd_item->ppd_match_level = PPD_EXACT_MATCH;
- else if (g_strcmp0 (match, "close") == 0)
- ppd_item->ppd_match_level = PPD_CLOSE_MATCH;
- else if (g_strcmp0 (match, "generic") == 0)
- ppd_item->ppd_match_level = PPD_GENERIC_MATCH;
- else if (g_strcmp0 (match, "none") == 0)
- ppd_item->ppd_match_level = PPD_NO_MATCH;
- }
+ ppd_item = g_new0 (PPDName, 1);
+ ppd_item->ppd_name = g_strdup (driver);
+
+ if (g_strcmp0 (match, "exact-cmd") == 0)
+ ppd_item->ppd_match_level = PPD_EXACT_CMD_MATCH;
+ else if (g_strcmp0 (match, "exact") == 0)
+ ppd_item->ppd_match_level = PPD_EXACT_MATCH;
+ else if (g_strcmp0 (match, "close") == 0)
+ ppd_item->ppd_match_level = PPD_CLOSE_MATCH;
+ else if (g_strcmp0 (match, "generic") == 0)
+ ppd_item->ppd_match_level = PPD_GENERIC_MATCH;
+ else if (g_strcmp0 (match, "none") == 0)
+ ppd_item->ppd_match_level = PPD_NO_MATCH;
}
}
}
@@ -1007,18 +1004,14 @@ get_missing_executables_cb (GObject *source_object,
if (output)
{
g_autoptr(GVariant) array = NULL;
+ g_autoptr(GVariantIter) iter = NULL;
+ const gchar *executable;
g_variant_get (output, "(@as)", &array);
- if (array)
- {
- g_autoptr(GVariantIter) iter = NULL;
- const gchar *executable;
-
- g_variant_get (array, "as", &iter);
- while (g_variant_iter_next (iter, "&s", &executable))
- executables = g_list_append (executables, g_strdup (executable));
- }
+ g_variant_get (array, "as", &iter);
+ while (g_variant_iter_next (iter, "&s", &executable))
+ executables = g_list_append (executables, g_strdup (executable));
}
else if (error->domain == G_DBUS_ERROR &&
(error->code == G_DBUS_ERROR_SERVICE_UNKNOWN ||
diff --git a/panels/printers/pp-utils.c b/panels/printers/pp-utils.c
index 2b56474b6..c1e8b5c21 100644
--- a/panels/printers/pp-utils.c
+++ b/panels/printers/pp-utils.c
@@ -1910,39 +1910,36 @@ get_ppd_names_async_dbus_scb (GObject *source_object,
g_variant_get (output, "(@a(ss))",
&array);
- if (array)
+ for (j = 0; j < G_N_ELEMENTS (match_levels) && n < data->count; j++)
{
- for (j = 0; j < G_N_ELEMENTS (match_levels) && n < data->count; j++)
- {
- g_autoptr(GVariantIter) iter = NULL;
- const gchar *driver, *match;
+ g_autoptr(GVariantIter) iter = NULL;
+ const gchar *driver, *match;
- g_variant_get (array,
- "a(ss)",
- &iter);
+ g_variant_get (array,
+ "a(ss)",
+ &iter);
- while (g_variant_iter_next (iter, "(&s&s)", &driver, &match))
+ while (g_variant_iter_next (iter, "(&s&s)", &driver, &match))
+ {
+ if (g_str_equal (match, match_levels[j]) && n < data->count)
{
- if (g_str_equal (match, match_levels[j]) && n < data->count)
- {
- ppd_item = g_new0 (PPDName, 1);
- ppd_item->ppd_name = g_strdup (driver);
-
- if (g_strcmp0 (match, "exact-cmd") == 0)
- ppd_item->ppd_match_level = PPD_EXACT_CMD_MATCH;
- else if (g_strcmp0 (match, "exact") == 0)
- ppd_item->ppd_match_level = PPD_EXACT_MATCH;
- else if (g_strcmp0 (match, "close") == 0)
- ppd_item->ppd_match_level = PPD_CLOSE_MATCH;
- else if (g_strcmp0 (match, "generic") == 0)
- ppd_item->ppd_match_level = PPD_GENERIC_MATCH;
- else if (g_strcmp0 (match, "none") == 0)
- ppd_item->ppd_match_level = PPD_NO_MATCH;
-
- driver_list = g_list_append (driver_list, ppd_item);
-
- n++;
- }
+ ppd_item = g_new0 (PPDName, 1);
+ ppd_item->ppd_name = g_strdup (driver);
+
+ if (g_strcmp0 (match, "exact-cmd") == 0)
+ ppd_item->ppd_match_level = PPD_EXACT_CMD_MATCH;
+ else if (g_strcmp0 (match, "exact") == 0)
+ ppd_item->ppd_match_level = PPD_EXACT_MATCH;
+ else if (g_strcmp0 (match, "close") == 0)
+ ppd_item->ppd_match_level = PPD_CLOSE_MATCH;
+ else if (g_strcmp0 (match, "generic") == 0)
+ ppd_item->ppd_match_level = PPD_GENERIC_MATCH;
+ else if (g_strcmp0 (match, "none") == 0)
+ ppd_item->ppd_match_level = PPD_NO_MATCH;
+
+ driver_list = g_list_append (driver_list, ppd_item);
+
+ n++;
}
}
}
@@ -2124,6 +2121,7 @@ get_device_attributes_async_dbus_cb (GObject *source_object,
{
const gchar *ret_error;
g_autoptr(GVariant) devices_variant = NULL;
+ gint index = -1;
g_variant_get (output, "(&s@a{ss})",
&ret_error,
@@ -2134,56 +2132,51 @@ get_device_attributes_async_dbus_cb (GObject *source_object,
g_warning ("cups-pk-helper: getting of attributes for printer %s failed: %s", data->printer_name,
ret_error);
}
- if (devices_variant)
+ if (data->device_uri)
{
- gint index = -1;
-
- if (data->device_uri)
- {
- g_autoptr(GVariantIter) iter = NULL;
- const gchar *key, *value;
- g_autofree gchar *suffix = NULL;
+ g_autoptr(GVariantIter) iter = NULL;
+ const gchar *key, *value;
+ g_autofree gchar *suffix = NULL;
- g_variant_get (devices_variant,
- "a{ss}",
- &iter);
+ g_variant_get (devices_variant,
+ "a{ss}",
+ &iter);
- while (g_variant_iter_next (iter, "{&s&s}", &key, &value))
+ while (g_variant_iter_next (iter, "{&s&s}", &key, &value))
+ {
+ if (g_str_equal (value, data->device_uri))
{
- if (g_str_equal (value, data->device_uri))
+ gchar *number = g_strrstr (key, ":");
+ if (number != NULL)
{
- gchar *number = g_strrstr (key, ":");
- if (number != NULL)
- {
- gchar *endptr;
+ gchar *endptr;
- number++;
- index = g_ascii_strtoll (number, &endptr, 10);
- if (index == 0 && endptr == (number))
- index = -1;
- }
+ number++;
+ index = g_ascii_strtoll (number, &endptr, 10);
+ if (index == 0 && endptr == (number))
+ index = -1;
}
}
+ }
- suffix = g_strdup_printf (":%d", index);
+ suffix = g_strdup_printf (":%d", index);
- g_variant_get (devices_variant,
- "a{ss}",
- &iter);
+ g_variant_get (devices_variant,
+ "a{ss}",
+ &iter);
- while (g_variant_iter_next (iter, "{&s&s}", &key, &value))
+ while (g_variant_iter_next (iter, "{&s&s}", &key, &value))
+ {
+ if (g_str_has_suffix (key, suffix))
{
- if (g_str_has_suffix (key, suffix))
+ if (g_str_has_prefix (key, "device-id"))
{
- if (g_str_has_prefix (key, "device-id"))
- {
- device_id = g_strdup (value);
- }
+ device_id = g_strdup (value);
+ }
- if (g_str_has_prefix (key, "device-make-and-model"))
- {
- device_make_and_model = g_strdup (value);
- }
+ if (g_str_has_prefix (key, "device-make-and-model"))
+ {
+ device_make_and_model = g_strdup (value);
}
}
}
@@ -3261,6 +3254,9 @@ get_cups_devices_async_dbus_cb (GObject *source_object,
const gchar *ret_error;
g_autoptr(GVariant) devices_variant = NULL;
gboolean is_network_device;
+ g_autoptr(GVariantIter) iter = NULL;
+ const gchar *key, *value;
+ gint index = -1, max_index = -1, i;
g_variant_get (output, "(&s@a{ss})",
&ret_error,
@@ -3271,66 +3267,59 @@ get_cups_devices_async_dbus_cb (GObject *source_object,
g_warning ("cups-pk-helper: getting of CUPS devices failed: %s", ret_error);
}
- if (devices_variant)
+ g_variant_get (devices_variant, "a{ss}", &iter);
+ while (g_variant_iter_next (iter, "{&s&s}", &key, &value))
{
- g_autoptr(GVariantIter) iter = NULL;
- const gchar *key, *value;
- gint index = -1, max_index = -1, i;
-
- g_variant_get (devices_variant, "a{ss}", &iter);
- while (g_variant_iter_next (iter, "{&s&s}", &key, &value))
- {
- index = get_suffix_index (key);
- if (index > max_index)
- max_index = index;
- }
+ index = get_suffix_index (key);
+ if (index > max_index)
+ max_index = index;
+ }
- if (max_index >= 0)
- {
- g_autoptr(GVariantIter) iter2 = NULL;
+ if (max_index >= 0)
+ {
+ g_autoptr(GVariantIter) iter2 = NULL;
- num_of_devices = max_index + 1;
- devices = g_new0 (PpPrintDevice *, num_of_devices);
+ num_of_devices = max_index + 1;
+ devices = g_new0 (PpPrintDevice *, num_of_devices);
- g_variant_get (devices_variant, "a{ss}", &iter2);
- while (g_variant_iter_next (iter2, "{&s&s}", &key, &value))
+ g_variant_get (devices_variant, "a{ss}", &iter2);
+ while (g_variant_iter_next (iter2, "{&s&s}", &key, &value))
+ {
+ index = get_suffix_index (key);
+ if (index >= 0)
{
- index = get_suffix_index (key);
- if (index >= 0)
- {
- if (!devices[index])
- devices[index] = pp_print_device_new ();
+ if (!devices[index])
+ devices[index] = pp_print_device_new ();
- if (g_str_has_prefix (key, "device-class"))
- {
- is_network_device = g_strcmp0 (value, "network") == 0;
- g_object_set (devices[index], "is-network-device", is_network_device, NULL);
- }
- else if (g_str_has_prefix (key, "device-id"))
- g_object_set (devices[index], "device-id", value, NULL);
- else if (g_str_has_prefix (key, "device-info"))
- g_object_set (devices[index], "device-info", value, NULL);
- else if (g_str_has_prefix (key, "device-make-and-model"))
- {
- g_object_set (devices[index],
- "device-make-and-model", value,
- "device-name", value,
- NULL);
- }
- else if (g_str_has_prefix (key, "device-uri"))
- g_object_set (devices[index], "device-uri", value, NULL);
- else if (g_str_has_prefix (key, "device-location"))
- g_object_set (devices[index], "device-location", value, NULL);
-
- g_object_set (devices[index], "acquisition-method",
ACQUISITION_METHOD_DEFAULT_CUPS_SERVER, NULL);
+ if (g_str_has_prefix (key, "device-class"))
+ {
+ is_network_device = g_strcmp0 (value, "network") == 0;
+ g_object_set (devices[index], "is-network-device", is_network_device, NULL);
}
+ else if (g_str_has_prefix (key, "device-id"))
+ g_object_set (devices[index], "device-id", value, NULL);
+ else if (g_str_has_prefix (key, "device-info"))
+ g_object_set (devices[index], "device-info", value, NULL);
+ else if (g_str_has_prefix (key, "device-make-and-model"))
+ {
+ g_object_set (devices[index],
+ "device-make-and-model", value,
+ "device-name", value,
+ NULL);
+ }
+ else if (g_str_has_prefix (key, "device-uri"))
+ g_object_set (devices[index], "device-uri", value, NULL);
+ else if (g_str_has_prefix (key, "device-location"))
+ g_object_set (devices[index], "device-location", value, NULL);
+
+ g_object_set (devices[index], "acquisition-method",
ACQUISITION_METHOD_DEFAULT_CUPS_SERVER, NULL);
}
+ }
- for (i = 0; i < num_of_devices; i++)
- result = g_list_append (result, devices[i]);
+ for (i = 0; i < num_of_devices; i++)
+ result = g_list_append (result, devices[i]);
- g_free (devices);
- }
+ g_free (devices);
}
}
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]