From 04da32e0e74bc2c3749ca82853a475b4e99b11ca Mon Sep 17 00:00:00 2001 From: MarcinZiabek Date: Tue, 16 Aug 2022 16:32:53 +0200 Subject: [PATCH] Stability improvements for text wrapping --- QuestPDF/Drawing/TextShaper.cs | 3 +++ QuestPDF/Elements/Text/Items/TextBlockSpan.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/QuestPDF/Drawing/TextShaper.cs b/QuestPDF/Drawing/TextShaper.cs index 85b4f5e..d04612e 100644 --- a/QuestPDF/Drawing/TextShaper.cs +++ b/QuestPDF/Drawing/TextShaper.cs @@ -129,6 +129,9 @@ namespace QuestPDF.Drawing { if (Glyphs.Length == 0) return null; + + if (startIndex > endIndex) + return null; using var skTextBlobBuilder = new SKTextBlobBuilder(); diff --git a/QuestPDF/Elements/Text/Items/TextBlockSpan.cs b/QuestPDF/Elements/Text/Items/TextBlockSpan.cs index ee65d73..033931e 100644 --- a/QuestPDF/Elements/Text/Items/TextBlockSpan.cs +++ b/QuestPDF/Elements/Text/Items/TextBlockSpan.cs @@ -66,7 +66,7 @@ namespace QuestPDF.Elements.Text.Items // start breaking text from requested position var endIndex = TextShapingResult.BreakText(startIndex, request.AvailableWidth); - if (endIndex < 0) + if (endIndex < startIndex) return null; // break text only on spaces