From 7fcfc82be0d6375e61b7b92c7307afa04633ecc3 Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Thu, 19 Jan 2023 00:39:50 +0100 Subject: [PATCH] Fixed TextShaperImpl when the text is backed by an array --- src/Skia/Avalonia.Skia/TextShaperImpl.cs | 2 ++ src/Windows/Avalonia.Direct2D1/Media/TextShaperImpl.cs | 2 ++ tests/Avalonia.UnitTests/HarfBuzzTextShaperImpl.cs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/Skia/Avalonia.Skia/TextShaperImpl.cs b/src/Skia/Avalonia.Skia/TextShaperImpl.cs index e0f95bac60..def2482af3 100644 --- a/src/Skia/Avalonia.Skia/TextShaperImpl.cs +++ b/src/Skia/Avalonia.Skia/TextShaperImpl.cs @@ -161,6 +161,8 @@ namespace Avalonia.Skia if (MemoryMarshal.TryGetArray(memory, out var segment)) { + start = segment.Offset; + length = segment.Count; return segment.Array.AsMemory(); } diff --git a/src/Windows/Avalonia.Direct2D1/Media/TextShaperImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/TextShaperImpl.cs index fffa5ce490..ac441108e3 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/TextShaperImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/TextShaperImpl.cs @@ -161,6 +161,8 @@ namespace Avalonia.Direct2D1.Media if (MemoryMarshal.TryGetArray(memory, out var segment)) { + start = segment.Offset; + length = segment.Count; return segment.Array.AsMemory(); } diff --git a/tests/Avalonia.UnitTests/HarfBuzzTextShaperImpl.cs b/tests/Avalonia.UnitTests/HarfBuzzTextShaperImpl.cs index 566cb0f1ac..baf5ffb07c 100644 --- a/tests/Avalonia.UnitTests/HarfBuzzTextShaperImpl.cs +++ b/tests/Avalonia.UnitTests/HarfBuzzTextShaperImpl.cs @@ -161,6 +161,8 @@ namespace Avalonia.UnitTests if (MemoryMarshal.TryGetArray(memory, out var segment)) { + start = segment.Offset; + length = segment.Count; return segment.Array.AsMemory(); }