common: make Array.slice() helper safer

This commit is contained in:
Isaac Freund
2022-07-11 23:33:34 +02:00
parent c09f4d631b
commit f64abbd016
+2 -1
View File
@@ -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))];
}
};