zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 59d0dda0803d8edd26d099025e0c0bcff5632e74 (tree)
parent bc82e0f3d3aed55165902c37271af120fcd4f858
Author: LemonBoy <thatlemon@gmail.com>
Date:   Tue, 21 Jan 2020 20:58:02 +0100

Make writeByteNTimes faster and leaner

Diffstat:
Mlib/std/io/out_stream.zig | 12++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/std/io/out_stream.zig b/lib/std/io/out_stream.zig @@ -45,10 +45,14 @@ pub fn OutStream(comptime WriteError: type) type { } pub fn writeByteNTimes(self: *Self, byte: u8, n: usize) Error!void { - const slice = @as(*const [1]u8, &byte)[0..]; - var i: usize = 0; - while (i < n) : (i += 1) { - try self.writeFn(self, slice); + var bytes: [256]u8 = undefined; + mem.set(u8, bytes[0..], byte); + + var remaining: usize = n; + while (remaining > 0) { + const to_write = std.math.min(remaining, bytes.len); + try self.writeFn(self, bytes[0..to_write]); + remaining -= to_write; } }