Skip to content

Commit ecd3ea9

Browse files
gooncreeperandrewrk
authored andcommitted
DeprecatedReader.Adapted: fix EndOfStream handling
1 parent 147a852 commit ecd3ea9

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

lib/std/Io.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ pub fn GenericReader(
333333
a.err = err;
334334
return error.ReadFailed;
335335
};
336+
if (n == 0) return error.EndOfStream;
336337
w.advance(n);
337338
return n;
338339
}

lib/std/Io/DeprecatedReader.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,7 @@ pub const Adapter = struct {
397397
a.err = err;
398398
return error.ReadFailed;
399399
};
400+
if (n == 0) return error.EndOfStream;
400401
w.advance(n);
401402
return n;
402403
}

lib/std/Io/test.zig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,11 @@ test "GenericReader methods can return error.EndOfStream" {
180180
fbs.reader().isBytes("foo"),
181181
);
182182
}
183+
184+
test "Adapted DeprecatedReader EndOfStream" {
185+
var fbs: io.FixedBufferStream([]const u8) = .{ .buffer = &.{}, .pos = 0 };
186+
const reader = fbs.reader();
187+
var buf: [1]u8 = undefined;
188+
var adapted = reader.adaptToNewApi(&buf);
189+
try std.testing.expectError(error.EndOfStream, adapted.new_interface.takeByte());
190+
}

0 commit comments

Comments
 (0)