diff options
author | Ahson Khan <ahkha@microsoft.com> | 2018-01-20 06:40:44 -0800 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2018-01-20 06:40:44 -0800 |
commit | 216a2d93979db085de75afbb2a3e762f51d76000 (patch) | |
tree | 5f425f6c166de7f711ab21e51310500d09a4afdc /src | |
parent | c7c2869ca0def15c25b8043ac78a378e0145bac8 (diff) | |
download | coreclr-216a2d93979db085de75afbb2a3e762f51d76000.tar.gz coreclr-216a2d93979db085de75afbb2a3e762f51d76000.tar.bz2 coreclr-216a2d93979db085de75afbb2a3e762f51d76000.zip |
Add optional integer offset to OwnedMemory Pin (#15946)
Diffstat (limited to 'src')
-rw-r--r-- | src/mscorlib/shared/System/Buffers/MemoryHandle.cs | 18 | ||||
-rw-r--r-- | src/mscorlib/shared/System/Buffers/OwnedMemory.cs | 2 | ||||
-rw-r--r-- | src/mscorlib/shared/System/Memory.cs | 3 | ||||
-rw-r--r-- | src/mscorlib/shared/System/ReadOnlyMemory.cs | 3 |
4 files changed, 3 insertions, 23 deletions
diff --git a/src/mscorlib/shared/System/Buffers/MemoryHandle.cs b/src/mscorlib/shared/System/Buffers/MemoryHandle.cs index 01f9563b9c..7544038629 100644 --- a/src/mscorlib/shared/System/Buffers/MemoryHandle.cs +++ b/src/mscorlib/shared/System/Buffers/MemoryHandle.cs @@ -42,24 +42,6 @@ namespace System.Buffers public bool HasPointer => _pointer != null; /// <summary> - /// Adds an offset to the pinned pointer. - /// </summary> - /// <exception cref="System.ArgumentNullException"> - /// Throw when pinned pointer is null. - /// </exception> - internal void AddOffset(int offset) - { - if (_pointer == null) - { - ThrowHelper.ThrowArgumentNullException(ExceptionArgument.pointer); - } - else - { - _pointer = (void*)((byte*)_pointer + offset); - } - } - - /// <summary> /// Frees the pinned handle and releases IRetainable. /// </summary> public void Dispose() diff --git a/src/mscorlib/shared/System/Buffers/OwnedMemory.cs b/src/mscorlib/shared/System/Buffers/OwnedMemory.cs index bbde61bf1f..b2d7a74c49 100644 --- a/src/mscorlib/shared/System/Buffers/OwnedMemory.cs +++ b/src/mscorlib/shared/System/Buffers/OwnedMemory.cs @@ -43,7 +43,7 @@ namespace System.Buffers /// <summary> /// Returns a handle for the array that has been pinned and hence its address can be taken /// </summary> - public abstract MemoryHandle Pin(); + public abstract MemoryHandle Pin(int offset = 0); /// <summary> /// Returns an array segment. diff --git a/src/mscorlib/shared/System/Memory.cs b/src/mscorlib/shared/System/Memory.cs index 9cb6e385c1..7e89051d31 100644 --- a/src/mscorlib/shared/System/Memory.cs +++ b/src/mscorlib/shared/System/Memory.cs @@ -244,8 +244,7 @@ namespace System { if (_index < 0) { - memoryHandle = ((OwnedMemory<T>)_object).Pin(); - memoryHandle.AddOffset((_index & RemoveOwnedFlagBitMask) * Unsafe.SizeOf<T>()); + memoryHandle = ((OwnedMemory<T>)_object).Pin((_index & RemoveOwnedFlagBitMask) * Unsafe.SizeOf<T>()); } else if (typeof(T) == typeof(char) && _object is string s) { diff --git a/src/mscorlib/shared/System/ReadOnlyMemory.cs b/src/mscorlib/shared/System/ReadOnlyMemory.cs index d0f8a4790d..c09f01262e 100644 --- a/src/mscorlib/shared/System/ReadOnlyMemory.cs +++ b/src/mscorlib/shared/System/ReadOnlyMemory.cs @@ -222,8 +222,7 @@ namespace System { if (_index < 0) { - memoryHandle = ((OwnedMemory<T>)_object).Pin(); - memoryHandle.AddOffset((_index & RemoveOwnedFlagBitMask) * Unsafe.SizeOf<T>()); + memoryHandle = ((OwnedMemory<T>)_object).Pin((_index & RemoveOwnedFlagBitMask) * Unsafe.SizeOf<T>()); } else if (typeof(T) == typeof(char) && _object is string s) { |