| ... | @@ -1330,18 +1330,15 @@ const VecPut = struct { | ... | @@ -1330,18 +1330,15 @@ const VecPut = struct { |
| 1330 | | 1330 | |
| 1331 | /// Limit iovecs to a specific byte size. | 1331 | /// Limit iovecs to a specific byte size. |
| 1332 | fn limitVecs(iovecs: []std.os.iovec, len: usize) []std.os.iovec { | 1332 | fn limitVecs(iovecs: []std.os.iovec, len: usize) []std.os.iovec { |
| 1333 | var vec_i: usize = 0; | | |
| 1334 | var bytes_left: usize = len; | 1333 | var bytes_left: usize = len; |
| 1335 | while (true) { | 1334 | for (iovecs, 0..) |*iovec, vec_i| { |
| 1336 | if (bytes_left >= iovecs[vec_i].iov_len) { | 1335 | if (bytes_left <= iovec.iov_len) { |
| 1337 | bytes_left -= iovecs[vec_i].iov_len; | 1336 | iovec.iov_len = bytes_left; |
| 1338 | vec_i += 1; | 1337 | return iovecs[0 .. vec_i + 1]; |
| 1339 | if (vec_i == iovecs.len or bytes_left == 0) return iovecs[0..vec_i]; | | |
| 1340 | continue; | | |
| 1341 | } | 1338 | } |
| 1342 | iovecs[vec_i].iov_len = bytes_left; | 1339 | bytes_left -= iovec.iov_len; |
| 1343 | return iovecs[0..vec_i]; | | |
| 1344 | } | 1340 | } |
| | 1341 | return iovecs; |
| 1345 | } | 1342 | } |
| 1346 | | 1343 | |
| 1347 | /// The priority order here is chosen based on what crypto algorithms Zig has | 1344 | /// The priority order here is chosen based on what crypto algorithms Zig has |