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:
parent
a2e8e1941a
commit
870fb46201
1 changed files with 9 additions and 3 deletions
|
@ -87,12 +87,18 @@ free_key_array (GPtrArray *keys)
|
||||||
static const gchar*
|
static const gchar*
|
||||||
get_binding_from_variant (GVariant *variant)
|
get_binding_from_variant (GVariant *variant)
|
||||||
{
|
{
|
||||||
|
const char *str, **strv;
|
||||||
|
|
||||||
if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING))
|
if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING))
|
||||||
return g_variant_get_string (variant, NULL);
|
return g_variant_get_string (variant, NULL);
|
||||||
else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING_ARRAY))
|
else if (!g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING_ARRAY))
|
||||||
return g_variant_get_strv (variant, NULL)[0];
|
return NULL;
|
||||||
|
|
||||||
return NULL;
|
strv = g_variant_get_strv (variant, NULL);
|
||||||
|
str = strv[0];
|
||||||
|
g_free (strv);
|
||||||
|
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue