authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-10-15 17:10:06-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-10-15 17:10:06-04:00
logfca1d53625281f763f628fc8b2f41d22bef29c57
tree92c5d7e5800a03734551ba091bdf2da28abb57c9
parentfaf64b5d0fa53a4fcc5ac24aa2aada502937808b

std.io: fix bug when writing large buffer


1 files changed, 4 insertions(+), 5 deletions(-)

std/io.zig+4-5
...@@ -170,7 +170,8 @@ pub const OutStream = struct {...@@ -170,7 +170,8 @@ pub const OutStream = struct {
170 if (self.index == 0)170 if (self.index == 0)
171 return;171 return;
172172
173 return self.unbufferedWrite(self.buffer[0..self.index]);173 %return self.unbufferedWrite(self.buffer[0..self.index]);
174 self.index = 0;
174 }175 }
175176
176 pub fn close(self: &OutStream) {177 pub fn close(self: &OutStream) {
...@@ -216,12 +217,10 @@ pub const OutStream = struct {...@@ -216,12 +217,10 @@ pub const OutStream = struct {
216217
217 fn unbufferedWrite(self: &OutStream, bytes: []const u8) -> %void {218 fn unbufferedWrite(self: &OutStream, bytes: []const u8) -> %void {
218 if (is_posix) {219 if (is_posix) {
219 %return os.posixWrite(self.fd, self.buffer[0..self.index]);220 %return os.posixWrite(self.fd, bytes);
220 self.index = 0;
221 } else if (is_windows) {221 } else if (is_windows) {
222 const handle = %return self.getHandle();222 const handle = %return self.getHandle();
223 %return os.windowsWrite(handle, self.buffer[0..self.index]);223 %return os.windowsWrite(handle, bytes);
224 self.index = 0;
225 } else {224 } else {
226 @compileError("Unsupported OS");225 @compileError("Unsupported OS");
227 }226 }