Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libraries/System.Runtime.InteropServices/tests/Ancillary.Interop/SpanMarshallers.cs')
-rw-r--r--src/libraries/System.Runtime.InteropServices/tests/Ancillary.Interop/SpanMarshallers.cs28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/libraries/System.Runtime.InteropServices/tests/Ancillary.Interop/SpanMarshallers.cs b/src/libraries/System.Runtime.InteropServices/tests/Ancillary.Interop/SpanMarshallers.cs
index 453259feeda..d5543df3c88 100644
--- a/src/libraries/System.Runtime.InteropServices/tests/Ancillary.Interop/SpanMarshallers.cs
+++ b/src/libraries/System.Runtime.InteropServices/tests/Ancillary.Interop/SpanMarshallers.cs
@@ -20,20 +20,8 @@ namespace System.Runtime.InteropServices.GeneratedMarshalling
}
public ReadOnlySpanMarshaller(ReadOnlySpan<T> managed, int sizeOfNativeElement)
+ :this(managed, Span<byte>.Empty, sizeOfNativeElement)
{
- _allocatedMemory = default;
- _sizeOfNativeElement = sizeOfNativeElement;
- if (managed.Length == 0)
- {
- _managedSpan = default;
- NativeValueStorage = default;
- return;
- }
- _managedSpan = managed;
- _sizeOfNativeElement = sizeOfNativeElement;
- int spaceToAllocate = managed.Length * sizeOfNativeElement;
- _allocatedMemory = Marshal.AllocCoTaskMem(spaceToAllocate);
- NativeValueStorage = new Span<byte>((void*)_allocatedMemory, spaceToAllocate);
}
public ReadOnlySpanMarshaller(ReadOnlySpan<T> managed, Span<byte> stackSpace, int sizeOfNativeElement)
@@ -81,8 +69,7 @@ namespace System.Runtime.InteropServices.GeneratedMarshalling
{
get
{
- Debug.Assert(_managedSpan.IsEmpty || _allocatedMemory != IntPtr.Zero);
- return (byte*)_allocatedMemory;
+ return (byte*)Unsafe.AsPointer(ref GetPinnableReference());
}
set
{
@@ -222,7 +209,7 @@ namespace System.Runtime.InteropServices.GeneratedMarshalling
{
if (_inner.ManagedValues.Length == 0)
{
- return (byte*)0x1;
+ return (byte*)0xa5a5a5a5;
}
return _inner.Value;
}
@@ -293,7 +280,7 @@ namespace System.Runtime.InteropServices.GeneratedMarshalling
{
if (_inner.ManagedValues.Length == 0)
{
- return (byte*)0x1;
+ return (byte*)0xa5a5a5a5;
}
return _inner.Value;
}
@@ -369,8 +356,11 @@ namespace System.Runtime.InteropServices.GeneratedMarshalling
{
get
{
- Debug.Assert(_data.IsEmpty || _allocatedMemory != null);
- return _allocatedMemory;
+ if (_allocatedMemory != null)
+ {
+ return _allocatedMemory;
+ }
+ return (T*)Unsafe.AsPointer(ref GetPinnableReference());
}
set
{