Commit d80e1001 authored by Dan Winship's avatar Dan Winship

libnm-core: simplify _nm_setting_new_from_dbus()

libnm-util's nm_setting_new_from_hash() needed to call
g_type_class_ref(setting_type) to ensure that the class had been
initialized by the time we fetched its properties. But in libnm-core's
version, we create the setting object before fetching the list of
properties, so we know the class will already have been initialized by
that point.
parent bbbbca27
......@@ -766,7 +766,6 @@ _nm_setting_new_from_dbus (GType setting_type,
GVariant *connection_dict,
GError **error)
{
NMSettingClass *class;
NMSetting *setting;
const NMSettingProperty *properties;
guint n_properties;
......@@ -781,11 +780,6 @@ _nm_setting_new_from_dbus (GType setting_type,
if (connection_dict)
g_return_val_if_fail (g_variant_is_of_type (connection_dict, NM_VARIANT_TYPE_CONNECTION), NULL);
/* g_type_class_ref() ensures the setting class is created if it hasn't
* already been used.
*/
class = g_type_class_ref (setting_type);
/* Build the setting object from the properties we know about; we assume
* that any propreties in @setting_dict that we don't know about can
* either be ignored or else has a backward-compatibility equivalent
......@@ -793,7 +787,7 @@ _nm_setting_new_from_dbus (GType setting_type,
*/
setting = (NMSetting *) g_object_new (setting_type, NULL);
properties = nm_setting_class_get_properties (class, &n_properties);
properties = nm_setting_class_get_properties (NM_SETTING_GET_CLASS (setting), &n_properties);
for (i = 0; i < n_properties; i++) {
const NMSettingProperty *property = &properties[i];
GVariant *value;
......@@ -825,8 +819,6 @@ _nm_setting_new_from_dbus (GType setting_type,
g_variant_unref (value);
}
g_type_class_unref (class);
return setting;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment