From: David Zeuthen Date: Wed, 14 Jul 2010 15:39:22 +0000 (-0400) Subject: GDBusMessage: Make endianness for D-Bus messages match host byte order X-Git-Tag: 2.25.12~64 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14e37ef7967a2da594faaab24fe2c9c117cf099f;p=platform%2Fupstream%2Fglib.git GDBusMessage: Make endianness for D-Bus messages match host byte order Signed-off-by: David Zeuthen --- diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c index 412c983..32668d0 100644 --- a/gio/gdbusmessage.c +++ b/gio/gdbusmessage.c @@ -1945,8 +1945,18 @@ g_dbus_message_to_blob (GDBusMessage *message, mos = G_MEMORY_OUTPUT_STREAM (g_memory_output_stream_new (NULL, 0, g_realloc, g_free)); dos = g_data_output_stream_new (G_OUTPUT_STREAM (mos)); - /* TODO: detect endianess... */ + /* Any D-Bus implementation is supposed to handle both Big and + * Little Endian encodings and the Endianness is part of the D-Bus + * message - we prefer to use Big Endian (since it's Network Byte + * Order and just easier to read for humans) but if the machine is + * Little Endian we use that for performance reasons. + */ +#if G_BYTE_ORDER == G_LITTLE_ENDIAN byte_order = G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN; +#else + /* this could also be G_PDP_ENDIAN */ + byte_order = G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN; +#endif g_data_output_stream_set_byte_order (dos, byte_order); /* Core header */