From a7c812f9f9c56d8d28cd1c8604830d1fd93204ec Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 14 May 2019 16:27:27 +0200 Subject: [PATCH] libnm: cleanup register_error_domain() --- libnm-core/nm-errors.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/libnm-core/nm-errors.c b/libnm-core/nm-errors.c index beef95c7fb..5dbbb36d7f 100644 --- a/libnm-core/nm-errors.c +++ b/libnm-core/nm-errors.c @@ -39,21 +39,19 @@ register_error_domain (GQuark domain, const char *interface, GType enum_type) { - GEnumClass *enum_class; - GEnumValue *e; - char *error_name; - int i; + nm_auto_unref_gtypeclass GEnumClass *enum_class = g_type_class_ref (enum_type); + guint i; - enum_class = g_type_class_ref (enum_type); for (i = 0; i < enum_class->n_values; i++) { - e = &enum_class->values[i]; - g_assert (strchr (e->value_nick, '-') == NULL); - error_name = g_strdup_printf ("%s.%s", interface, e->value_nick); - g_dbus_error_register_error (domain, e->value, error_name); - g_free (error_name); - } + const GEnumValue *e = &enum_class->values[i]; + char error_name[200]; - g_type_class_unref (enum_class); + nm_assert (e && e->value_nick && !strchr (e->value_nick, '-')); + + nm_sprintf_buf (error_name, "%s.%s", interface, e->value_nick); + if (!g_dbus_error_register_error (domain, e->value, error_name)) + nm_assert_not_reached (); + } } void @@ -77,9 +75,6 @@ _nm_dbus_errors_init (void) register_error_domain (NM_SETTINGS_ERROR, NM_DBUS_INTERFACE_SETTINGS, NM_TYPE_SETTINGS_ERROR); - register_error_domain (NM_SETTINGS_ERROR, - NM_DBUS_INTERFACE_SETTINGS, - NM_TYPE_SETTINGS_ERROR); register_error_domain (NM_VPN_PLUGIN_ERROR, NM_DBUS_VPN_ERROR_PREFIX, NM_TYPE_VPN_PLUGIN_ERROR);