Commit 111305678c

Andrew Kelley <andrew@ziglang.org>
2025-07-31 23:58:59
std: match readVec fn prototype exactly
this is not necessary according to zig language, but works around a flaw in the C backend
1 parent ae67c26
Changed files (5)
lib/std/compress/flate/Decompress.zig
@@ -109,7 +109,7 @@ fn discard(r: *Reader, limit: std.Io.Limit) Reader.Error!usize {
     return n;
 }
 
-fn readVec(r: *Reader, data: []const []u8) Reader.Error!usize {
+fn readVec(r: *Reader, data: [][]u8) Reader.Error!usize {
     _ = data;
     assert(r.seek == r.end);
     r.rebase(flate.history_len) catch unreachable;
lib/std/compress/zstd/Decompress.zig
@@ -131,7 +131,7 @@ fn discard(r: *Reader, limit: std.Io.Limit) Reader.Error!usize {
     return n;
 }
 
-fn readVec(r: *Reader, data: []const []u8) Reader.Error!usize {
+fn readVec(r: *Reader, data: [][]u8) Reader.Error!usize {
     _ = data;
     const d: *Decompress = @alignCast(@fieldParentPtr("reader", r));
     assert(r.seek == r.end);
lib/std/fs/File.zig
@@ -1305,7 +1305,7 @@ pub const Reader = struct {
         }
     }
 
-    fn readVec(io_reader: *std.Io.Reader, data: []const []u8) std.Io.Reader.Error!usize {
+    fn readVec(io_reader: *std.Io.Reader, data: [][]u8) std.Io.Reader.Error!usize {
         const r: *Reader = @alignCast(@fieldParentPtr("interface", io_reader));
         switch (r.mode) {
             .positional, .positional_reading => {
lib/std/Io/Reader.zig
@@ -421,7 +421,7 @@ pub fn readVec(r: *Reader, data: [][]u8) Error!usize {
 }
 
 /// Writes to `Reader.buffer` or `data`, whichever has larger capacity.
-pub fn defaultReadVec(r: *Reader, data: []const []u8) Error!usize {
+pub fn defaultReadVec(r: *Reader, data: [][]u8) Error!usize {
     assert(r.seek == r.end);
     r.seek = 0;
     r.end = 0;
@@ -1665,7 +1665,7 @@ fn endingStream(r: *Reader, w: *Writer, limit: Limit) StreamError!usize {
     return error.EndOfStream;
 }
 
-fn endingReadVec(r: *Reader, data: []const []u8) Error!usize {
+fn endingReadVec(r: *Reader, data: [][]u8) Error!usize {
     _ = r;
     _ = data;
     return error.EndOfStream;
lib/std/net.zig
@@ -1938,7 +1938,7 @@ pub const Stream = struct {
                 return n;
             }
 
-            fn readVec(io_r: *std.Io.Reader, data: []const []u8) Io.Reader.Error!usize {
+            fn readVec(io_r: *std.Io.Reader, data: [][]u8) Io.Reader.Error!usize {
                 const r: *Reader = @alignCast(@fieldParentPtr("interface_state", io_r));
                 var iovecs: [max_buffers_len]windows.ws2_32.WSABUF = undefined;
                 const bufs_n, const data_size = try io_r.writableVectorWsa(&iovecs, data);