|
@@ -67,7 +67,7 @@ builder_init :: proc{
|
|
|
}
|
|
|
|
|
|
@(private)
|
|
|
-_builder_stream_vtable := io.Stream_VTable{
|
|
|
+_builder_stream_vtable_obj := 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)
|
|
@@ -95,9 +95,13 @@ _builder_stream_vtable := io.Stream_VTable{
|
|
|
},
|
|
|
}
|
|
|
|
|
|
+// NOTE(dweiler): Work around a miscompilation bug on Linux still.
|
|
|
+@(private)
|
|
|
+_builder_stream_vtable := &_builder_stream_vtable_obj
|
|
|
+
|
|
|
// return an `io.Stream` from a builder
|
|
|
to_stream :: proc(b: ^Builder) -> io.Stream {
|
|
|
- return io.Stream{stream_vtable=&_builder_stream_vtable, stream_data=b}
|
|
|
+ return io.Stream{stream_vtable=_builder_stream_vtable, stream_data=b}
|
|
|
}
|
|
|
|
|
|
// return an `io.Writer` from a builder
|