diff --git a/src/Avalonia.Base/Media/TextFormatting/CharacterBufferRange.cs b/src/Avalonia.Base/Media/TextFormatting/CharacterBufferRange.cs
index 045f336700..d76f212f26 100644
--- a/src/Avalonia.Base/Media/TextFormatting/CharacterBufferRange.cs
+++ b/src/Avalonia.Base/Media/TextFormatting/CharacterBufferRange.cs
@@ -47,21 +47,6 @@ namespace Avalonia.Media.TextFormatting
)
{ }
- ///
- /// Construct from unsafe character string
- ///
- /// pointer to character string
- /// character length
- public unsafe CharacterBufferRange(
- char* unsafeCharacterString,
- int characterLength
- )
- : this(
- new CharacterBufferReference(unsafeCharacterString, characterLength),
- characterLength
- )
- { }
-
///
/// Construct a from
///
diff --git a/src/Avalonia.Base/Media/TextFormatting/CharacterBufferReference.cs b/src/Avalonia.Base/Media/TextFormatting/CharacterBufferReference.cs
index a15562cb52..672fcf3377 100644
--- a/src/Avalonia.Base/Media/TextFormatting/CharacterBufferReference.cs
+++ b/src/Avalonia.Base/Media/TextFormatting/CharacterBufferReference.cs
@@ -1,6 +1,4 @@
using System;
-using System.Buffers;
-using System.Runtime.InteropServices;
namespace Avalonia.Media.TextFormatting
{
@@ -26,15 +24,6 @@ namespace Avalonia.Media.TextFormatting
public CharacterBufferReference(string characterString, int offsetToFirstChar = 0)
: this(characterString.AsMemory(), offsetToFirstChar)
{ }
-
- ///
- /// Construct character buffer reference from unsafe character string
- ///
- /// pointer to character string
- /// character length of unsafe string
- public unsafe CharacterBufferReference(char* unsafeCharacterString, int characterLength)
- : this(new UnmanagedMemoryManager(unsafeCharacterString, characterLength).Memory, 0)
- { }
///
/// Construct character buffer reference from memory buffer
@@ -58,6 +47,17 @@ namespace Avalonia.Media.TextFormatting
OffsetToFirstChar = offsetToFirstChar;
}
+ ///
+ /// Gets the character memory buffer
+ ///
+ public ReadOnlyMemory CharacterBuffer { get; }
+
+ ///
+ /// Gets the character offset relative to the beginning of buffer to
+ /// the first character of the run
+ ///
+ public int OffsetToFirstChar { get; }
+
///
/// Compute hash code
///
@@ -110,67 +110,6 @@ namespace Avalonia.Media.TextFormatting
{
return !(left == right);
}
-
- public ReadOnlyMemory CharacterBuffer { get; }
-
- public int OffsetToFirstChar { get; }
-
- ///
- /// A MemoryManager over a raw pointer
- ///
- /// The pointer is assumed to be fully unmanaged, or externally pinned - no attempt will be made to pin this data
- public sealed unsafe class UnmanagedMemoryManager : MemoryManager
- where T : unmanaged
- {
- private readonly T* _pointer;
- private readonly int _length;
-
- ///
- /// Create a new UnmanagedMemoryManager instance at the given pointer and size
- ///
- /// It is assumed that the span provided is already unmanaged or externally pinned
- public UnmanagedMemoryManager(Span span)
- {
- fixed (T* ptr = &MemoryMarshal.GetReference(span))
- {
- _pointer = ptr;
- _length = span.Length;
- }
- }
- ///
- /// Create a new UnmanagedMemoryManager instance at the given pointer and size
- ///
- public UnmanagedMemoryManager(T* pointer, int length)
- {
- if (length < 0)
- throw new ArgumentOutOfRangeException(nameof(length));
- _pointer = pointer;
- _length = length;
- }
- ///
- /// Obtains a span that represents the region
- ///
- public override Span GetSpan() => new Span(_pointer, _length);
-
- ///
- /// Provides access to a pointer that represents the data (note: no actual pin occurs)
- ///
- public override MemoryHandle Pin(int elementIndex = 0)
- {
- if (elementIndex < 0 || elementIndex >= _length)
- throw new ArgumentOutOfRangeException(nameof(elementIndex));
- return new MemoryHandle(_pointer + elementIndex);
- }
- ///
- /// Has no effect
- ///
- public override void Unpin() { }
-
- ///
- /// Releases all resources associated with this object
- ///
- protected override void Dispose(bool disposing) { }
- }
}
}
diff --git a/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs b/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs
index 9587786c5b..0be753bd04 100644
--- a/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs
+++ b/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs
@@ -57,21 +57,6 @@ namespace Avalonia.Media.TextFormatting
)
{ }
- ///
- /// Construct a run for text content from unsafe character string
- ///
- public unsafe TextCharacters(
- char* unsafeCharacterString,
- int length,
- TextRunProperties textRunProperties
- ) :
- this(
- new CharacterBufferReference(unsafeCharacterString, length),
- length,
- textRunProperties
- )
- { }
-
///
/// Internal constructor of TextContent
///