diff --git a/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakEnumerator.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakEnumerator.cs index 576f0ad872..2198a18cd3 100644 --- a/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakEnumerator.cs +++ b/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakEnumerator.cs @@ -24,6 +24,11 @@ namespace Avalonia.Media.TextFormatting.Unicode { lineBreak = default; + if (_text.IsEmpty) + { + return false; + } + if (_state.Current.EndOfText) { return false; diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumeratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumeratorTests.cs index 59ddf6932e..56d346fc59 100644 --- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumeratorTests.cs +++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumeratorTests.cs @@ -19,6 +19,14 @@ namespace Avalonia.Base.UnitTests.Media.TextFormatting _outputHelper = outputHelper; } + [Fact] + public void ShouldHandleEmptyString() + { + var lineBreaker = new LineBreakEnumerator(string.Empty); + + Assert.False(lineBreaker.MoveNext(out _)); + } + [Fact] public void BasicLatinTest() {