summary refs log tree commit diff
path: root/libnm-core/nm-setting.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/nm-setting.c')
-rw-r--r--libnm-core/nm-setting.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/libnm-core/nm-setting.c b/libnm-core/nm-setting.c
index b78d9376..e1e81b5d 100644
--- a/libnm-core/nm-setting.c
+++ b/libnm-core/nm-setting.c
@@ -91,7 +91,7 @@ _nm_gtype_hash (gconstpointer v)
 	return *((const GType *) v);
 }
 
-static void __attribute__((constructor))
+static void
 _ensure_registered (void)
 {
 	if (G_UNLIKELY (registered_settings == NULL)) {
@@ -103,6 +103,12 @@ _ensure_registered (void)
 	}
 }
 
+static void __attribute__((constructor))
+_ensure_registered_constructor (void)
+{
+	_ensure_registered ();
+}
+
 #define _ensure_setting_info(self, priv) \
 	G_STMT_START { \
 		NMSettingPrivate *_priv_esi = (priv); \
@@ -1047,13 +1053,15 @@ compare_property (NMSetting *setting,
 	property = nm_setting_class_find_property (NM_SETTING_GET_CLASS (setting), prop_spec->name);
 	g_return_val_if_fail (property != NULL, FALSE);
 
-	value1 = get_property_for_dbus (setting, property, FALSE);
-	value2 = get_property_for_dbus (other, property, FALSE);
+	value1 = get_property_for_dbus (setting, property, TRUE);
+	value2 = get_property_for_dbus (other, property, TRUE);
 
 	cmp = nm_property_compare (value1, value2);
 
-	g_variant_unref (value1);
-	g_variant_unref (value2);
+	if (value1)
+		g_variant_unref (value1);
+	if (value2)
+		g_variant_unref (value2);
 
 	return cmp == 0;
 }