diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bplist.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/bplist.c b/src/bplist.c index 67513e6..a9724b8 100644 --- a/src/bplist.c +++ b/src/bplist.c | |||
| @@ -988,23 +988,23 @@ static void write_uint(bytearray_t * bplist, uint64_t val) | |||
| 988 | static void write_real(bytearray_t * bplist, double val) | 988 | static void write_real(bytearray_t * bplist, double val) |
| 989 | { | 989 | { |
| 990 | int size = get_real_bytes(val); //cheat to know used space | 990 | int size = get_real_bytes(val); //cheat to know used space |
| 991 | uint8_t buff[9]; | 991 | uint8_t buff[16]; |
| 992 | buff[0] = BPLIST_REAL | Log2(size); | 992 | buff[7] = BPLIST_REAL | Log2(size); |
| 993 | if (size == sizeof(float)) { | 993 | if (size == sizeof(float)) { |
| 994 | float floatval = (float)val; | 994 | float floatval = (float)val; |
| 995 | *(uint32_t*)(buff+1) = float_bswap32(*(uint32_t*)&floatval); | 995 | *(uint32_t*)(buff+8) = float_bswap32(*(uint32_t*)&floatval); |
| 996 | } else { | 996 | } else { |
| 997 | *(uint64_t*)(buff+1) = float_bswap64(*(uint64_t*)&val); | 997 | *(uint64_t*)(buff+8) = float_bswap64(*(uint64_t*)&val); |
| 998 | } | 998 | } |
| 999 | byte_array_append(bplist, buff, size+1); | 999 | byte_array_append(bplist, buff+7, size+1); |
| 1000 | } | 1000 | } |
| 1001 | 1001 | ||
| 1002 | static void write_date(bytearray_t * bplist, double val) | 1002 | static void write_date(bytearray_t * bplist, double val) |
| 1003 | { | 1003 | { |
| 1004 | uint8_t buff[9]; | 1004 | uint8_t buff[16]; |
| 1005 | buff[0] = BPLIST_DATE | 3; | 1005 | buff[7] = BPLIST_DATE | 3; |
| 1006 | *(uint64_t*)(buff+1) = float_bswap64(*(uint64_t*)&val); | 1006 | *(uint64_t*)(buff+8) = float_bswap64(*(uint64_t*)&val); |
| 1007 | byte_array_append(bplist, buff, sizeof(buff)); | 1007 | byte_array_append(bplist, buff+7, 9); |
| 1008 | } | 1008 | } |
| 1009 | 1009 | ||
| 1010 | static void write_raw_data(bytearray_t * bplist, uint8_t mark, uint8_t * val, uint64_t size) | 1010 | static void write_raw_data(bytearray_t * bplist, uint8_t mark, uint8_t * val, uint64_t size) |
