diff options
Diffstat (limited to 'src/mscorlib/src/System/IO/PinnedBufferMemoryStream.cs')
-rw-r--r-- | src/mscorlib/src/System/IO/PinnedBufferMemoryStream.cs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mscorlib/src/System/IO/PinnedBufferMemoryStream.cs b/src/mscorlib/src/System/IO/PinnedBufferMemoryStream.cs index 2cbd14f734..284cd927dc 100644 --- a/src/mscorlib/src/System/IO/PinnedBufferMemoryStream.cs +++ b/src/mscorlib/src/System/IO/PinnedBufferMemoryStream.cs @@ -13,19 +13,21 @@ ** ** ===========================================================*/ + using System; using System.Runtime.InteropServices; using System.Diagnostics; using System.Diagnostics.Contracts; -namespace System.IO { +namespace System.IO +{ internal sealed unsafe class PinnedBufferMemoryStream : UnmanagedMemoryStream { private byte[] _array; private GCHandle _pinningHandle; // The new inheritance model requires a Critical default ctor since base (UnmanagedMemoryStream) has one - private PinnedBufferMemoryStream():base(){} + private PinnedBufferMemoryStream() : base() { } internal PinnedBufferMemoryStream(byte[] array) { @@ -33,7 +35,8 @@ namespace System.IO { int len = array.Length; // Handle 0 length byte arrays specially. - if (len == 0) { + if (len == 0) + { array = new byte[1]; len = 0; } @@ -42,7 +45,7 @@ namespace System.IO { _pinningHandle = new GCHandle(array, GCHandleType.Pinned); // Now the byte[] is pinned for the lifetime of this instance. // But I also need to get a pointer to that block of memory... - fixed(byte* ptr = &_array[0]) + fixed (byte* ptr = &_array[0]) Initialize(ptr, len, len, FileAccess.Read); } @@ -53,14 +56,16 @@ namespace System.IO { protected override void Dispose(bool disposing) { - if (_isOpen) { + if (_isOpen) + { _pinningHandle.Free(); _isOpen = false; } #if _DEBUG // To help track down lifetime issues on checked builds, force //a full GC here. - if (disposing) { + if (disposing) + { GC.Collect(); GC.WaitForPendingFinalizers(); } |