dbus/glib dbus-gvalue-utils.c,1.10,1.11
Havoc Pennington
hp at kemper.freedesktop.org
Sat May 20 22:33:54 PDT 2006
Update of /cvs/dbus/dbus/glib
In directory kemper:/tmp/cvs-serv6986/glib
Modified Files:
dbus-gvalue-utils.c
Log Message:
2006-05-21 Havoc Pennington <hp at redhat.com>
* glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
is not NULL when it shouldn't be. Also a couple of possible fixes
for #4637 though I don't understand why the bug happens, to be
honest... also the object constructor has an assert name != NULL
and the name is only currently NULL for peer-to-peer proxies that
I don't think anyone uses? So it should be asserting.
Anyway, for now at least see if we get an earlier assertion failure.
* glib/dbus-gvalue-utils.c: Put in a couple of assertions for
apparently broken code to be sure the tests fail and someone
will fix them...
Index: dbus-gvalue-utils.c
===================================================================
RCS file: /cvs/dbus/dbus/glib/dbus-gvalue-utils.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- dbus-gvalue-utils.c 28 Apr 2006 21:02:16 -0000 1.10
+++ dbus-gvalue-utils.c 21 May 2006 05:33:52 -0000 1.11
@@ -939,6 +939,11 @@
g_value_init (&val_copy, G_VALUE_TYPE (val));
g_value_copy (val, &val_copy);
+ /* The slist_append can't work if this fails, and
+ * I'm pretty sure it will fail too FIXME
+ */
+ g_assert(dest != NULL);
+
g_slist_append (dest, ptrarray_value_from_gvalue (&val_copy));
}
@@ -1292,7 +1297,17 @@
g_assert (!strcmp ("bar", g_ptr_array_index (instance, 1)));
g_assert (!strcmp ("baz", g_ptr_array_index (instance, 2)));
+ /* FIXME this crashes, I believe because ptrarray_append
+ * doesn't copy the incoming static string, then ptrarray_free
+ * tries to free it; looks to me like always copying appended
+ * values would be the only working approach.
+ */
g_value_unset (&val);
+ /* FIXME make sure this test fails for everyone, since
+ * apparently people didn't see it, the bad free
+ * maybe didn't crash everywhere
+ */
+ g_assert_not_reached();
}
type = dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID);
More information about the dbus-commit
mailing list