authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-15 16:35:08-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-23 22:15:09-08:00
log97f106f949891870433bfcc6b7cf4c2a6709402e
treeb1ba43a1e75cab89eee46db10de98b52c1035e9c
parent22afd168d95b1d6be4a99196e07573bed8f4b472

std.Io: fix dir iteration on macOS


2 files changed, 3 insertions(+), 2 deletions(-)

lib/std/Io/Dir.zig+1-1
...@@ -95,7 +95,7 @@ pub const Reader = struct {...@@ -95,7 +95,7 @@ pub const Reader = struct {
95 dir: Dir,95 dir: Dir,
96 state: State,96 state: State,
97 /// Stores I/O implementation specific data.97 /// Stores I/O implementation specific data.
98 buffer: []u8 align(@alignOf(usize)),98 buffer: []align(@alignOf(usize)) u8,
99 /// Index of next entry in `buffer`.99 /// Index of next entry in `buffer`.
100 index: usize,100 index: usize,
101 /// Fill position of `buffer`.101 /// Fill position of `buffer`.
lib/std/Io/Threaded.zig+2-1
...@@ -3406,11 +3406,12 @@ fn dirReadDarwin(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) Di...@@ -3406,11 +3406,12 @@ fn dirReadDarwin(userdata: ?*anyopaque, dr: *Dir.Reader, buffer: []Dir.Entry) Di
3406 const Header = extern struct {3406 const Header = extern struct {
3407 seek: i64,3407 seek: i64,
3408 };3408 };
3409 const header: *Header = @ptrCast(&dr.buffer);3409 const header: *Header = @ptrCast(dr.buffer.ptr);
3410 const header_end: usize = @sizeOf(Header);3410 const header_end: usize = @sizeOf(Header);
3411 if (dr.index < header_end) {3411 if (dr.index < header_end) {
3412 // Initialize header.3412 // Initialize header.
3413 dr.index = header_end;3413 dr.index = header_end;
3414 dr.end = header_end;
3414 header.* = .{ .seek = 0 };3415 header.* = .{ .seek = 0 };
3415 }3416 }
3416 var buffer_index: usize = 0;3417 var buffer_index: usize = 0;