[Tarantool-patches] [PATCH 10/10] xrow: use unaligned store operation in xrow_to_iovec()
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Thu May 21 23:37:24 MSK 2020
xrow_to_iovec() tried to save a uint32_t value by a not aligned
address. The patch makes it use a special operation for that
instead of regular assignment.
Part of #4609
---
src/box/xrow.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/box/xrow.c b/src/box/xrow.c
index 06473a8bc..bb64864b2 100644
--- a/src/box/xrow.c
+++ b/src/box/xrow.c
@@ -892,7 +892,7 @@ xrow_to_iovec(const struct xrow_header *row, struct iovec *out)
/* Encode length */
char *data = (char *) out[0].iov_base;
*(data++) = 0xce; /* MP_UINT32 */
- *(uint32_t *) data = mp_bswap_u32(len);
+ store_u32(data, mp_bswap_u32(len));
assert(iovcnt <= XROW_IOVMAX);
return iovcnt;
--
2.21.1 (Apple Git-122.3)
More information about the Tarantool-patches
mailing list