summary refs log tree commit diff
path: root/libnm/nm-object.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm/nm-object.c')
-rw-r--r--libnm/nm-object.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/libnm/nm-object.c b/libnm/nm-object.c
index 43bbba7f..da2fbb79 100644
--- a/libnm/nm-object.c
+++ b/libnm/nm-object.c
@@ -197,7 +197,7 @@ deferred_notify_cb (gpointer data)
 	c_list_for_each (iter, &props) {
 		NotifyItem *item = c_list_entry (iter, NotifyItem, lst);
 		char buf[50];
-		int ret = 0;
+		gint ret = 0;
 
 		switch (item->pending) {
 		case NOTIFY_SIGNAL_PENDING_ADDED:
@@ -844,12 +844,16 @@ demarshal_generic (NMObject *object,
 			g_free (newval);
 	} else if (pspec->value_type == G_TYPE_BYTES) {
 		GBytes **param = (GBytes **)field;
-		gconstpointer val;
-		gsize length = 0;
+		gconstpointer val, old_val = NULL;
+		gsize length, old_length = 0;
 
 		val = g_variant_get_fixed_array (value, &length, 1);
 
-		different = !nm_utils_gbytes_equal_mem (*param, val, length);
+		if (*param)
+			old_val = g_bytes_get_data (*param, &old_length);
+		different =    old_length != length
+		            || (   length > 0
+		                && memcmp (old_val, val, length) != 0);
 		if (different) {
 			if (*param)
 				g_bytes_unref (*param);
@@ -889,10 +893,10 @@ demarshal_generic (NMObject *object,
 		HANDLE_TYPE (G_VARIANT_TYPE_BYTE, guchar, g_variant_get_byte);
 	else if (pspec->value_type == G_TYPE_DOUBLE) {
 		NM_PRAGMA_WARNING_DISABLE("-Wfloat-equal")
-		HANDLE_TYPE (G_VARIANT_TYPE_DOUBLE, double, g_variant_get_double);
+		HANDLE_TYPE (G_VARIANT_TYPE_DOUBLE, gdouble, g_variant_get_double);
 		NM_PRAGMA_WARNING_REENABLE
 	} else if (pspec->value_type == G_TYPE_INT)
-		HANDLE_TYPE (G_VARIANT_TYPE_INT32, int, g_variant_get_int32);
+		HANDLE_TYPE (G_VARIANT_TYPE_INT32, gint, g_variant_get_int32);
 	else if (pspec->value_type == G_TYPE_UINT)
 		HANDLE_TYPE (G_VARIANT_TYPE_UINT32, guint, g_variant_get_uint32);
 	else if (pspec->value_type == G_TYPE_INT64)
@@ -900,7 +904,7 @@ demarshal_generic (NMObject *object,
 	else if (pspec->value_type == G_TYPE_UINT64)
 		HANDLE_TYPE (G_VARIANT_TYPE_UINT64, guint64, g_variant_get_uint64);
 	else if (pspec->value_type == G_TYPE_LONG)
-		HANDLE_TYPE (G_VARIANT_TYPE_INT64, long, g_variant_get_int64);
+		HANDLE_TYPE (G_VARIANT_TYPE_INT64, glong, g_variant_get_int64);
 	else if (pspec->value_type == G_TYPE_ULONG)
 		HANDLE_TYPE (G_VARIANT_TYPE_UINT64, gulong, g_variant_get_uint64);
 	else {
@@ -1033,10 +1037,10 @@ init_dbus (NMObject *object)
 static void
 init_if (GDBusProxy *proxy, NMObject *self)
 {
-	char **props;
+	gchar **props;
 	char **prop;
 	GVariant *val;
-	char *str;
+	gchar *str;
 
 	nm_assert (G_IS_DBUS_PROXY (proxy));
 	nm_assert (NM_IS_OBJECT (self));