2003-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Wed, 5 Mar 2003 02:24:44 +0000 (02:24 -0000)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Wed, 5 Mar 2003 02:24:44 +0000 (02:24 -0000)
* MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and
ToArray even after closing the stream.

svn path=/trunk/mcs/; revision=12204

mcs/class/corlib/System.IO/ChangeLog
mcs/class/corlib/System.IO/MemoryStream.cs

index 0cf01f386d353f2fafa22c3d8e306faca9857506..a86996153a878b6db13a40bbd96b5a4aedcb2d1e 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and
+       ToArray even after closing the stream.
+
 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * Directory.cs:
index 3c45121b0480d1a10a92739f313c2441dd7580b9..e9b4ac3dfb4f62cddcd30a09e1bced86096c8fe4 100644 (file)
@@ -193,13 +193,10 @@ namespace System.IO {
                         }\r
                 }\r
                 \r
-                public override void Close() {\r
-                        if( streamClosed ) {\r
-                                return;\r
-                        }\r
-\r
+                public override void Close ()\r
+               {\r
                        streamClosed = true;\r
-                       internalBuffer = null;\r
+                       expandable = false;\r
                 }\r
 \r
                 public override void Flush() { }\r
@@ -332,9 +329,9 @@ namespace System.IO {
                 \r
                 \r
                 public virtual byte[] ToArray() { \r
-                        byte[] outBuffer = new byte[(int)position];\r
+                        byte[] outBuffer = new byte[capacity];\r
                        \r
-                       Buffer.BlockCopyInternal (internalBuffer, 0, outBuffer, 0, (int)position);\r
+                       Buffer.BlockCopyInternal (internalBuffer, 0, outBuffer, 0, capacity);\r
                         return outBuffer; \r
                 }\r
 \r
@@ -385,6 +382,9 @@ namespace System.IO {
                 \r
 \r
                 public virtual void WriteTo( Stream stream ) { \r
+                       if (streamClosed)\r
+                               throw new ObjectDisposedException ("MemoryStream");\r
+\r
                         if( stream == null ) {\r
                                 throw new ArgumentNullException();\r
                         }\r