summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-message.c
diff options
context:
space:
mode:
authorOlivier Andrieu <oliv__a@users.sourceforge.net>2004-07-29 08:00:45 +0000
committerOlivier Andrieu <oliv__a@users.sourceforge.net>2004-07-29 08:00:45 +0000
commit4076d31c71bee332c4a697597a93345b45850b33 (patch)
treeb9526969be83df9ddd5ae4f9584410d0ffecf643 /dbus/dbus-message.c
parentb72fe8c67d724d0f4637714a72e4e91c9487349f (diff)
* bus/config-loader-libxml.c: complete the implementation of libxml
backend for config file loader. Doesn't work with full OOM test yet. * configure.in: change error when selecting libxml into a warning. * test/data/invalid-config-files: add two non-well-formed XML files. * glib/Makefile.am: libdbus_gtool always uses expat, not libxml. * dbus/dbus-transport-unix.c (unix_handle_watch): do not disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may be necessary to read all the buffer. (bug #894) * bus/activation.c (bus_activation_activate_service): fix a potential assertion failure (bug #896). Small optimization in the case of auto-activation messages. * dbus/dbus-message.c (verify_test_message, _dbus_message_test): add test case for byte-through-vararg bug (#901). patch by Kimmo Hämäläinen.
Diffstat (limited to 'dbus/dbus-message.c')
-rw-r--r--dbus/dbus-message.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c
index 8887720a..1db8bd9c 100644
--- a/dbus/dbus-message.c
+++ b/dbus/dbus-message.c
@@ -2622,7 +2622,7 @@ dbus_message_iter_get_args_valist (DBusMessageIter *iter,
#endif /* DBUS_HAVE_INT64 */
case DBUS_TYPE_DOUBLE:
{
- void *ptr = va_arg (var_args, void *);
+ void *ptr = va_arg (var_args, double *);
_dbus_message_iter_get_basic_type (iter, spec_type, ptr);
break;
}
@@ -6696,6 +6696,7 @@ verify_test_message (DBusMessage *message)
char *our_str;
double our_double;
dbus_bool_t our_bool;
+ unsigned char our_byte_1, our_byte_2;
dbus_uint32_t our_uint32;
dbus_int32_t *our_uint32_array;
int our_uint32_array_len;
@@ -6730,6 +6731,9 @@ verify_test_message (DBusMessage *message)
DBUS_TYPE_STRING, &our_str,
DBUS_TYPE_DOUBLE, &our_double,
DBUS_TYPE_BOOLEAN, &our_bool,
+ DBUS_TYPE_BYTE, &our_byte_1,
+ DBUS_TYPE_BYTE, &our_byte_2,
+ DBUS_TYPE_NIL,
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32,
&our_uint32_array, &our_uint32_array_len,
DBUS_TYPE_ARRAY, DBUS_TYPE_INT32,
@@ -6775,6 +6779,12 @@ verify_test_message (DBusMessage *message)
if (!our_bool)
_dbus_assert_not_reached ("booleans differ");
+ if (our_byte_1 != 42)
+ _dbus_assert_not_reached ("bytes differ!");
+
+ if (our_byte_2 != 24)
+ _dbus_assert_not_reached ("bytes differ!");
+
if (our_uint32_array_len != 4 ||
our_uint32_array[0] != 0x12345678 ||
our_uint32_array[1] != 0x23456781 ||
@@ -7027,6 +7037,9 @@ _dbus_message_test (const char *test_data_dir)
DBUS_TYPE_STRING, "Test string",
DBUS_TYPE_DOUBLE, 3.14159,
DBUS_TYPE_BOOLEAN, TRUE,
+ DBUS_TYPE_BYTE, (unsigned char) 42,
+ DBUS_TYPE_BYTE, 24,
+ DBUS_TYPE_NIL,
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, our_uint32_array,
_DBUS_N_ELEMENTS (our_uint32_array),
DBUS_TYPE_ARRAY, DBUS_TYPE_INT32, our_int32_array,
@@ -7062,6 +7075,9 @@ _dbus_message_test (const char *test_data_dir)
sig[i++] = DBUS_TYPE_STRING;
sig[i++] = DBUS_TYPE_DOUBLE;
sig[i++] = DBUS_TYPE_BOOLEAN;
+ sig[i++] = DBUS_TYPE_BYTE;
+ sig[i++] = DBUS_TYPE_BYTE;
+ sig[i++] = DBUS_TYPE_NIL;
sig[i++] = DBUS_TYPE_ARRAY;
sig[i++] = DBUS_TYPE_UINT32;
sig[i++] = DBUS_TYPE_ARRAY;