aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem-helpers.c')
-rw-r--r--src/mm-modem-helpers.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 35465d91..a1c7e9a2 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -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,