aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-07-31 16:00:58 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-07-31 22:10:11 -0700
commit165cd87c122b9c0a78377bb9f87b2d5d2b3ae661 (patch)
tree323e4acd7e4fa808ae7b0d39499508ff3c322410 /lib/std
parent111305678cc606fa71133fcb8bf517e59b35b772 (diff)
downloadzig-165cd87c122b9c0a78377bb9f87b2d5d2b3ae661.tar.gz
zig-165cd87c122b9c0a78377bb9f87b2d5d2b3ae661.zip
std.Io.Reader: don't set end to zero
because it may be used as a ring buffer
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/Io/Reader.zig9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/std/Io/Reader.zig b/lib/std/Io/Reader.zig
index 5b4de6445d..05ab489286 100644
--- a/lib/std/Io/Reader.zig
+++ b/lib/std/Io/Reader.zig
@@ -266,8 +266,7 @@ pub fn streamRemaining(r: *Reader, w: *Writer) StreamRemainingError!usize {
/// number of bytes discarded.
pub fn discardRemaining(r: *Reader) ShortError!usize {
var offset: usize = r.end - r.seek;
- r.seek = 0;
- r.end = 0;
+ r.seek = r.end;
while (true) {
offset += r.vtable.discard(r, .unlimited) catch |err| switch (err) {
error.EndOfStream => return offset,
@@ -526,8 +525,7 @@ pub fn toss(r: *Reader, n: usize) void {
/// Equivalent to `toss(r.bufferedLen())`.
pub fn tossBuffered(r: *Reader) void {
- r.seek = 0;
- r.end = 0;
+ r.seek = r.end;
}
/// Equivalent to `peek` followed by `toss`.
@@ -614,8 +612,7 @@ pub fn discardShort(r: *Reader, n: usize) ShortError!usize {
return n;
}
var remaining = n - (r.end - r.seek);
- r.end = 0;
- r.seek = 0;
+ r.seek = r.end;
while (true) {
const discard_len = r.vtable.discard(r, .limited(remaining)) catch |err| switch (err) {
error.EndOfStream => return n - remaining,