fix decode on bigendian systems

This commit is contained in:
Hideyuki Tanaka 2012-01-26 16:38:27 +09:00
parent 49d40a42f1
commit b8aa93ce30

View File

@ -153,24 +153,24 @@ typedef unsigned int _msgpack_atomic_counter_t;
#define _msgpack_be64(x) (x)
#define _msgpack_load16(cast, from) ((cast)( \
(((uint16_t)((uint8_t*)from)[1]) << 8) | \
(((uint16_t)((uint8_t*)from)[0]) ) ))
(((uint16_t)((uint8_t*)from)[0]) << 8) | \
(((uint16_t)((uint8_t*)from)[1]) ) ))
#define _msgpack_load32(cast, from) ((cast)( \
(((uint32_t)((uint8_t*)from)[3]) << 24) | \
(((uint32_t)((uint8_t*)from)[2]) << 16) | \
(((uint32_t)((uint8_t*)from)[1]) << 8) | \
(((uint32_t)((uint8_t*)from)[0]) ) ))
(((uint32_t)((uint8_t*)from)[0]) << 24) | \
(((uint32_t)((uint8_t*)from)[1]) << 16) | \
(((uint32_t)((uint8_t*)from)[2]) << 8) | \
(((uint32_t)((uint8_t*)from)[3]) ) ))
#define _msgpack_load64(cast, from) ((cast)( \
(((uint64_t)((uint8_t*)from)[7]) << 56) | \
(((uint64_t)((uint8_t*)from)[6]) << 48) | \
(((uint64_t)((uint8_t*)from)[5]) << 40) | \
(((uint64_t)((uint8_t*)from)[4]) << 32) | \
(((uint64_t)((uint8_t*)from)[3]) << 24) | \
(((uint64_t)((uint8_t*)from)[2]) << 16) | \
(((uint64_t)((uint8_t*)from)[1]) << 8) | \
(((uint64_t)((uint8_t*)from)[0]) ) ))
(((uint64_t)((uint8_t*)from)[0]) << 56) | \
(((uint64_t)((uint8_t*)from)[1]) << 48) | \
(((uint64_t)((uint8_t*)from)[2]) << 40) | \
(((uint64_t)((uint8_t*)from)[3]) << 32) | \
(((uint64_t)((uint8_t*)from)[4]) << 24) | \
(((uint64_t)((uint8_t*)from)[5]) << 16) | \
(((uint64_t)((uint8_t*)from)[6]) << 8) | \
(((uint64_t)((uint8_t*)from)[7]) ) ))
#endif