Merge branch 'master' into polymorphic_extern_classes
[nit.git] / lib / standard / stream.nit
index 79e601f..5932daa 100644 (file)
@@ -202,7 +202,7 @@ abstract class BufferedIStream
                        var j = _buffer_pos
                        var k = _buffer.length
                        while j < k do
-                               s.add(_buffer.chars[j])
+                               s.add(_buffer[j])
                                j += 1
                        end
                        _buffer_pos = j
@@ -250,10 +250,10 @@ abstract class BufferedIStream
        redef fun eof do return _buffer_pos >= _buffer.length and end_reached
 
        # The buffer
-       var _buffer: nullable FlatBuffer = null
+       private var buffer: nullable FlatBuffer = null
 
        # The current position in the buffer
-       var _buffer_pos: Int = 0
+       private var buffer_pos: Int = 0
 
        # Fill the buffer
        protected fun fill_buffer is abstract
@@ -419,6 +419,13 @@ class StringOStream
 
        private var content = new Array[String]
        redef fun to_s do return content.to_s
-       redef fun is_writable do return true
-       redef fun write(str) do content.add(str.to_s)
+       redef fun is_writable do return not closed
+       redef fun write(str)
+       do
+               assert not closed
+               content.add(str.to_s)
+       end
+
+       protected var closed = false
+       redef fun close do closed = true
 end