From fca1d53625281f763f628fc8b2f41d22bef29c57 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 15 Oct 2017 17:10:06 -0400 Subject: std.io: fix bug when writing large buffer --- std/io.zig | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'std') diff --git a/std/io.zig b/std/io.zig index 124e7714da..943f78e875 100644 --- a/std/io.zig +++ b/std/io.zig @@ -170,7 +170,8 @@ pub const OutStream = struct { if (self.index == 0) return; - return self.unbufferedWrite(self.buffer[0..self.index]); + %return self.unbufferedWrite(self.buffer[0..self.index]); + self.index = 0; } pub fn close(self: &OutStream) { @@ -216,12 +217,10 @@ pub const OutStream = struct { fn unbufferedWrite(self: &OutStream, bytes: []const u8) -> %void { if (is_posix) { - %return os.posixWrite(self.fd, self.buffer[0..self.index]); - self.index = 0; + %return os.posixWrite(self.fd, bytes); } else if (is_windows) { const handle = %return self.getHandle(); - %return os.windowsWrite(handle, self.buffer[0..self.index]); - self.index = 0; + %return os.windowsWrite(handle, bytes); } else { @compileError("Unsupported OS"); } -- cgit v1.2.3