Skip to content

Commit 165cd87

Browse files
committed
std.Io.Reader: don't set end to zero
because it may be used as a ring buffer
1 parent 1113056 commit 165cd87

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

lib/std/Io/Reader.zig

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,7 @@ pub fn streamRemaining(r: *Reader, w: *Writer) StreamRemainingError!usize {
266266
/// number of bytes discarded.
267267
pub fn discardRemaining(r: *Reader) ShortError!usize {
268268
var offset: usize = r.end - r.seek;
269-
r.seek = 0;
270-
r.end = 0;
269+
r.seek = r.end;
271270
while (true) {
272271
offset += r.vtable.discard(r, .unlimited) catch |err| switch (err) {
273272
error.EndOfStream => return offset,
@@ -526,8 +525,7 @@ pub fn toss(r: *Reader, n: usize) void {
526525

527526
/// Equivalent to `toss(r.bufferedLen())`.
528527
pub fn tossBuffered(r: *Reader) void {
529-
r.seek = 0;
530-
r.end = 0;
528+
r.seek = r.end;
531529
}
532530

533531
/// Equivalent to `peek` followed by `toss`.
@@ -614,8 +612,7 @@ pub fn discardShort(r: *Reader, n: usize) ShortError!usize {
614612
return n;
615613
}
616614
var remaining = n - (r.end - r.seek);
617-
r.end = 0;
618-
r.seek = 0;
615+
r.seek = r.end;
619616
while (true) {
620617
const discard_len = r.vtable.discard(r, .limited(remaining)) catch |err| switch (err) {
621618
error.EndOfStream => return n - remaining,

0 commit comments

Comments
 (0)