diff options
author | ZyX <kp-pav@yandex.ru> | 2015-08-14 08:21:30 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 22:00:43 +0300 |
commit | 9afa45e6391eda5aeeed13475e65071558b5b59c (patch) | |
tree | acddc0732f380bbba34d0a0ded07d064a1a2e566 | |
parent | bcb60b0a645582558017e31b75f691a889cf562b (diff) | |
download | rneovim-9afa45e6391eda5aeeed13475e65071558b5b59c.tar.gz rneovim-9afa45e6391eda5aeeed13475e65071558b5b59c.tar.bz2 rneovim-9afa45e6391eda5aeeed13475e65071558b5b59c.zip |
shada: Fix -Wstrict-aliasing gcc error
Also removes theoretically possible unaligned memory access when computing
be64toh() argument.
-rw-r--r-- | src/nvim/shada.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c index f44594f372..b98aa2f258 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -3294,14 +3294,14 @@ static ShaDaReadResult msgpack_read_uint64(ShaDaReadDef *const sd_reader, return kSDReadStatusNotShaDa; } } - uint8_t buf[sizeof(uint64_t)] = {0, 0, 0, 0, 0, 0, 0, 0}; + uint64_t buf = 0; + char *buf_u8 = (char *) &buf; ShaDaReadResult fl_ret; - if ((fl_ret = fread_len(sd_reader, (char *) &(buf[sizeof(uint64_t)-length]), - length)) + if ((fl_ret = fread_len(sd_reader, &(buf_u8[sizeof(buf)-length]), length)) != kSDReadStatusSuccess) { return fl_ret; } - *result = be64toh(*((uint64_t *) &(buf[0]))); + *result = be64toh(buf); } return kSDReadStatusSuccess; } |