From f64abbd016a918fe6e74e0cf337410cecad5eb5d Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 11 Jul 2022 23:33:34 +0200 Subject: [PATCH] common: make Array.slice() helper safer --- src/common_core.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common_core.zig b/src/common_core.zig index 318aef1..f234496 100644 --- a/src/common_core.zig +++ b/src/common_core.zig @@ -34,7 +34,8 @@ pub const Array = extern struct { pub fn slice(array: Array, comptime T: type) []T { const data = array.data orelse return &[0]T{}; - const ptr = @ptrCast([*]T, @alignCast(@alignOf(T), data)); + // The wire protocol/libwayland only guarantee 32-bit word alignment. + const ptr = @ptrCast([*]T, @alignCast(4, data)); return ptr[0..@divExact(array.size, @sizeOf(T))]; } };