GDBus: Big-endian fixes

Tested this on my Powerbook G4 12", 867MHz PowerPC G4 running Fedora
11ish.

Signed-off-by: David Zeuthen <davidz@redhat.com>
This commit is contained in:
David Zeuthen 2010-05-25 11:59:57 -04:00
parent a81c2f2c7a
commit eec66b2f94
2 changed files with 7 additions and 3 deletions

View File

@ -1195,8 +1195,12 @@ g_dbus_message_bytes_needed (guchar *blob,
}
else if (blob[0] == 'B')
{
/* TODO */
g_assert_not_reached ();
/* core header (12 bytes) + ARRAY of STRUCT of (BYTE,VARIANT) */
ret = 12 + 4 + GUINT32_FROM_BE (((guint32 *) blob)[3]);
/* round up so it's a multiple of 8 */
ret = 8 * ((ret + 7)/8);
/* finally add the body size */
ret += GUINT32_FROM_BE (((guint32 *) blob)[1]);
}
else
{

View File

@ -445,7 +445,7 @@ on_proxy_appeared (GDBusConnection *connection,
/* elapsed_msec should be 4000 msec +/- change for overhead/inaccuracy */
g_assert_cmpint (elapsed_msec, >=, 3950);
g_assert_cmpint (elapsed_msec, <, 5000);
g_assert_cmpint (elapsed_msec, <, 6000);
g_print (" ");
}