keyboard: Fix a memory leak

While the actual strings returned by g_variant_get_strv() are owned
by the variant, we still need to free the container ...

https://bugzilla.gnome.org/show_bug.cgi?id=784356
This commit is contained in:
Florian Müllner 2017-06-29 16:42:43 +02:00 committed by Georges Basile Stavracas Neto
parent a2e8e1941a
commit 870fb46201

View file

@ -87,12 +87,18 @@ free_key_array (GPtrArray *keys)
static const gchar*
get_binding_from_variant (GVariant *variant)
{
const char *str, **strv;
if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING))
return g_variant_get_string (variant, NULL);
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING_ARRAY))
return g_variant_get_strv (variant, NULL)[0];
else if (!g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING_ARRAY))
return NULL;
return NULL;
strv = g_variant_get_strv (variant, NULL);
str = strv[0];
g_free (strv);
return str;
}
static gboolean