Browse Source

Correct `_builder_stream_vtable`

gingerBill 3 years ago
parent
commit
e928793e79
1 changed files with 6 additions and 6 deletions
  1. 6 6
      core/strings/builder.odin

+ 6 - 6
core/strings/builder.odin

@@ -52,18 +52,18 @@ _builder_stream_vtable := &io.Stream_VTable{
 	impl_write = proc(s: io.Stream, p: []byte) -> (n: int, err: io.Error) {
 		b := (^Builder)(s.stream_data)
 		n = write_bytes(b, p)
-		if len(b.buf) == cap(b.buf) {
+		if n < len(p) {
 			err = .EOF
 		}
 		return
 	},
-	impl_write_byte = proc(s: io.Stream, c: byte) -> io.Error {
+	impl_write_byte = proc(s: io.Stream, c: byte) -> (err: io.Error) {
 		b := (^Builder)(s.stream_data)
-		_ = write_byte(b, c)
-		if len(b.buf) == cap(b.buf) {
-			return .EOF
+		n := write_byte(b, c)
+		if n == 0 {
+			err = .EOF
 		}
-		return nil
+		return
 	},
 	impl_size = proc(s: io.Stream) -> i64 {
 		b := (^Builder)(s.stream_data)