X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dbus%2Fdbus-marshal-basic.c;h=88b19f36571164b45584c049269f534a5b3adaa8;hb=67f9cca382df0d03adfe6b619aa613d103fa77f6;hp=b1398539e0719bc5f2d4dd41f54aff7c06fdb801;hpb=5df8c3db12590edd68e968975a335da9d0415e5a;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-marshal-basic.c b/dbus/dbus-marshal-basic.c index b139853..88b19f3 100644 --- a/dbus/dbus-marshal-basic.c +++ b/dbus/dbus-marshal-basic.c @@ -65,6 +65,13 @@ _DBUS_STATIC_ASSERT (sizeof (dbus_uint64_t) == 8); _DBUS_ASSERT_ALIGNMENT (dbus_uint64_t, <=, 8); #endif +_DBUS_STATIC_ASSERT (sizeof (DBusBasicValue) >= 8); +/* The alignment of a DBusBasicValue might conceivably be > 8 because of the + * pointer, so we don't assert about it */ + +_DBUS_STATIC_ASSERT (sizeof (DBus8ByteStruct) == 8); +_DBUS_ASSERT_ALIGNMENT (DBus8ByteStruct, <=, 8); + /** * @defgroup DBusMarshal marshaling and unmarshaling * @ingroup DBusInternals @@ -119,7 +126,7 @@ pack_8_octets (DBusBasicValue value, else *((dbus_uint64_t*)(data)) = DBUS_UINT64_TO_BE (value.u64); #else - *(DBus8ByteStruct*)data = value.u64; + *(DBus8ByteStruct*)data = value.eight; swap_8_octets ((DBusBasicValue*)data, byte_order); #endif } @@ -169,7 +176,7 @@ swap_8_octets (DBusBasicValue *value, #ifdef DBUS_HAVE_INT64 value->u64 = DBUS_UINT64_SWAP_LE_BE (value->u64); #else - swap_bytes ((unsigned char *)value, 8); + swap_bytes (&value->bytes, 8); #endif } } @@ -190,7 +197,7 @@ unpack_8_octets (int byte_order, else r.u64 = DBUS_UINT64_FROM_BE (*(dbus_uint64_t*)data); #else - r.u64 = *(DBus8ByteStruct*)data; + r.eight = *(DBus8ByteStruct*)data; swap_8_octets (&r, byte_order); #endif @@ -1267,44 +1274,6 @@ _dbus_type_get_alignment (int typecode) } } - -/** - * Return #TRUE if the typecode is a valid typecode. - * #DBUS_TYPE_INVALID surprisingly enough is not considered valid, and - * random unknown bytes aren't either. This function is safe with - * untrusted data. - * - * @returns #TRUE if valid - */ -dbus_bool_t -_dbus_type_is_valid (int typecode) -{ - switch (typecode) - { - case DBUS_TYPE_BYTE: - case DBUS_TYPE_BOOLEAN: - case DBUS_TYPE_INT16: - case DBUS_TYPE_UINT16: - case DBUS_TYPE_INT32: - case DBUS_TYPE_UINT32: - case DBUS_TYPE_INT64: - case DBUS_TYPE_UINT64: - case DBUS_TYPE_DOUBLE: - case DBUS_TYPE_STRING: - case DBUS_TYPE_OBJECT_PATH: - case DBUS_TYPE_SIGNATURE: - case DBUS_TYPE_ARRAY: - case DBUS_TYPE_STRUCT: - case DBUS_TYPE_DICT_ENTRY: - case DBUS_TYPE_VARIANT: - case DBUS_TYPE_UNIX_FD: - return TRUE; - - default: - return FALSE; - } -} - /** * Returns a string describing the given type. *