summary refs log tree commit diff
path: root/libnm-util/nm-setting.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2016-03-30 00:56:30 +0200
committerMichael Biebl <biebl@debian.org>2016-03-30 00:56:30 +0200
commitd9c99a29a0d3384c9c3d2adce430f5cb1134ab6a (patch)
treefa41baf72753961e71dd8d5bdbe2b89c9109e4f1 /libnm-util/nm-setting.c
parentc2de0d98ba39e0a1a970d066fd19be786092f376 (diff)
Imported Upstream version 1.1.92 upstream/1.1.92
Diffstat (limited to 'libnm-util/nm-setting.c')
-rw-r--r--libnm-util/nm-setting.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
index add3ad97..990d6fe7 100644
--- a/libnm-util/nm-setting.c
+++ b/libnm-util/nm-setting.c
@@ -379,9 +379,6 @@ nm_setting_new_from_hash (GType setting_type, GHashTable *hash)
 	const char *prop_name;
 	GValue *src_value;
 	GObjectClass *class;
-	guint n_params = 0;
-	GParameter *params;
-	int i;
 
 	g_return_val_if_fail (G_TYPE_IS_INSTANTIATABLE (setting_type), NULL);
 	g_return_val_if_fail (hash != NULL, NULL);
@@ -390,11 +387,11 @@ nm_setting_new_from_hash (GType setting_type, GHashTable *hash)
 	 * already been used.
 	 */
 	class = g_type_class_ref (setting_type);
-	params = g_new0 (GParameter, g_hash_table_size (hash));
+
+	setting = (NMSetting *) g_object_new (setting_type, NULL);
 
 	g_hash_table_iter_init (&iter, hash);
 	while (g_hash_table_iter_next (&iter, (gpointer) &prop_name, (gpointer) &src_value)) {
-		GValue *dst_value = &params[n_params].value;
 		GParamSpec *param_spec;
 
 		param_spec = g_object_class_find_property (class, prop_name);
@@ -402,21 +399,12 @@ nm_setting_new_from_hash (GType setting_type, GHashTable *hash)
 			/* Assume that any unrecognized property either can be ignored, or
 			 * else has a backward-compatibility equivalent.
 			 */
-			g_debug ("Ignoring unrecognized property '%s'", prop_name);
 			continue;
 		}
 
-		g_value_init (dst_value, G_VALUE_TYPE (src_value));
-		g_value_copy (src_value, dst_value);
-		params[n_params++].name = prop_name;
+		nm_g_object_set_property ((GObject *) setting, prop_name, src_value, NULL);
 	}
 
-	setting = (NMSetting *) g_object_newv (setting_type, n_params, params);
-
-	for (i = 0; i < n_params; i++)
-		g_value_unset (&params[i].value);
-
-	g_free (params);
 	g_type_class_unref (class);
 
 	return setting;