diff options
| author | INADA Naoki <methane@users.noreply.github.com> | 2019-01-07 21:10:40 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-07 21:10:40 +0900 |
| commit | f46523b1af7ff2d408da8500ea36a4f9f2abe915 (patch) | |
| tree | 19b7ccb83539b1e25162bef13bce1102f15e5da6 /msgpack/pack_template.h | |
| parent | 197e30723a242e3ba31f9634b3263ae4cb2937b1 (diff) | |
| download | msgpack-python-f46523b1af7ff2d408da8500ea36a4f9f2abe915.tar.gz | |
use _PyFloat APIs to (de)serialize (#340)
Diffstat (limited to 'msgpack/pack_template.h')
| -rw-r--r-- | msgpack/pack_template.h | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/msgpack/pack_template.h b/msgpack/pack_template.h index 5d1088f..69982f4 100644 --- a/msgpack/pack_template.h +++ b/msgpack/pack_template.h @@ -566,24 +566,17 @@ if(sizeof(unsigned long long) == 2) { static inline int msgpack_pack_float(msgpack_packer* x, float d) { - union { float f; uint32_t i; } mem; - mem.f = d; unsigned char buf[5]; - buf[0] = 0xca; _msgpack_store32(&buf[1], mem.i); + buf[0] = 0xca; + _PyFloat_Pack4(d, &buf[1], 0); msgpack_pack_append_buffer(x, buf, 5); } static inline int msgpack_pack_double(msgpack_packer* x, double d) { - union { double f; uint64_t i; } mem; - mem.f = d; unsigned char buf[9]; buf[0] = 0xcb; -#if defined(__arm__) && !(__ARM_EABI__) // arm-oabi - // https://github.com/msgpack/msgpack-perl/pull/1 - mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); -#endif - _msgpack_store64(&buf[1], mem.i); + _PyFloat_Pack8(d, &buf[1], 0); msgpack_pack_append_buffer(x, buf, 9); } |
