2004-04-02 Dick Porter <dick@ximian.com>
[mono.git] / mcs / class / corlib / System.IO / MemoryStream.cs
index 5400bea3d82ff2443c6e1dea8362b79cbcee5f69..c7f2e3f12b89754c03237b0827e0cc2c31f8f739 100644 (file)
@@ -9,6 +9,8 @@
 // (c) 2003 Ximian, Inc. (http://www.ximian.com)
 //
 
+using System.Runtime.InteropServices;
+
 namespace System.IO
 {
        [Serializable]
@@ -44,11 +46,17 @@ namespace System.IO
 
                public MemoryStream (byte [] buffer)
                {
+                       if (buffer == null)
+                               throw new ArgumentNullException ("buffer");
+                       
                        InternalConstructor (buffer, 0, buffer.Length, true, false);                        
                }
 
                public MemoryStream (byte [] buffer, bool writeable)
                {
+                       if (buffer == null)
+                               throw new ArgumentNullException ("buffer");
+                       
                        InternalConstructor (buffer, 0, buffer.Length, writeable, false);
                }
 
@@ -197,7 +205,7 @@ namespace System.IO
                        return internalBuffer;
                }
 
-               public override int Read (byte [] buffer, int offset, int count)
+               public override int Read ([In,Out] byte [] buffer, int offset, int count)
                {
                        CheckIfClosedThrowDisposed ();
 
@@ -372,5 +380,4 @@ namespace System.IO
                        stream.Write (internalBuffer, initialIndex, length - initialIndex);
                }
        }               
-}                      
-
+}