From c8d043dd9463c9fb9688c86209dc7b9a46d2430b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 20 Feb 2020 15:11:20 +0100 Subject: [PATCH] core: avoid duplicate lookup in nm_utils_strdict_to_variant() Collect the full list of key and values, while sorting the key. This way, we don't need to lookup the values by key later. --- src/nm-core-utils.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c index 1ff0764777..a5275963c4 100644 --- a/src/nm-core-utils.c +++ b/src/nm-core-utils.c @@ -4055,18 +4055,18 @@ GVariant * nm_utils_strdict_to_variant (GHashTable *options) { GVariantBuilder builder; - gs_free const char **keys = NULL; + gs_free NMUtilsNamedValue *values = NULL; guint i; - guint nkeys; + guint n; - keys = nm_utils_strdict_get_keys (options, TRUE, &nkeys); + values = nm_utils_named_values_from_str_dict (options, &n); g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - for (i = 0; i < nkeys; i++) { + for (i = 0; i < n; i++) { g_variant_builder_add (&builder, "{sv}", - keys[i], - g_variant_new_string (g_hash_table_lookup (options, keys[i]))); + values[i].name, + g_variant_new_string (values[i].value_str)); } return g_variant_builder_end (&builder); }