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*
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue