std.Io.Dir.Reader: fix min_buffer_len on 32-bit linux

dirents64 still uses 8 byte alignment on 32-bit systems
This commit is contained in:
Andrew Kelley
2025-12-19 14:50:04 -08:00
parent 3e624e17a4
commit 6aa31cedb7
+2 -2
View File
@@ -103,8 +103,8 @@ pub const Reader = struct {
/// A length for `buffer` that allows all implementations to function.
pub const min_buffer_len = switch (native_os) {
.linux => @sizeOf(std.os.linux.dirent64) +
std.mem.alignForward(usize, max_name_bytes, @alignOf(std.os.linux.dirent64)),
.linux => std.mem.alignForward(usize, @sizeOf(std.os.linux.dirent64), 8) +
std.mem.alignForward(usize, max_name_bytes, 8),
.windows => std.mem.alignForward(usize, max_name_bytes, @alignOf(usize)),
else => if (builtin.link_libc) @sizeOf(std.c.dirent) else std.mem.alignForward(usize, max_name_bytes, @alignOf(usize)),
};