libmm-glib, modem-helpers: unref enum/flags GType classes in enum getters

This commit is contained in:
Thomas Haller
2018-10-04 09:43:05 +02:00
committed by Aleksander Morgado
parent a68bbbc1b9
commit d83f50794d
2 changed files with 58 additions and 12 deletions
+8 -2
View File
@@ -652,15 +652,21 @@ mm_flow_control_from_string (const gchar *str,
GError **error)
{
GFlagsClass *flags_class;
guint value;
guint i;
flags_class = G_FLAGS_CLASS (g_type_class_ref (MM_TYPE_FLOW_CONTROL));
for (i = 0; flags_class->values[i].value_nick; i++) {
if (!g_ascii_strcasecmp (str, flags_class->values[i].value_nick))
return flags_class->values[i].value;
if (!g_ascii_strcasecmp (str, flags_class->values[i].value_nick)) {
value = flags_class->values[i].value;
g_type_class_unref (flags_class);
return value;
}
}
g_type_class_unref (flags_class);
g_set_error (error,
MM_CORE_ERROR,
MM_CORE_ERROR_INVALID_ARGS,