Browse Source
Merge pull request #10213 from amwx/fix/TextNullRef
Fix Null Ref when font fallback is used
pull/10218/head
Max Katz
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
10 additions and
7 deletions
-
src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs
|
|
|
@ -118,14 +118,17 @@ namespace Avalonia.Media.TextFormatting |
|
|
|
fontManager.TryMatchCharacter(codepoint, defaultTypeface.Style, defaultTypeface.Weight, |
|
|
|
defaultTypeface.Stretch, defaultTypeface.FontFamily, defaultProperties.CultureInfo, |
|
|
|
out var fallbackTypeface); |
|
|
|
|
|
|
|
var fallbackGlyphTypeface = fontManager.GetOrAddGlyphTypeface(fallbackTypeface); |
|
|
|
|
|
|
|
if (matchFound && TryGetShapeableLength(textSpan, fallbackGlyphTypeface, defaultGlyphTypeface, out count)) |
|
|
|
|
|
|
|
if (matchFound) |
|
|
|
{ |
|
|
|
//Fallback found
|
|
|
|
return new UnshapedTextRun(text.Slice(0, count), defaultProperties.WithTypeface(fallbackTypeface), |
|
|
|
biDiLevel); |
|
|
|
// Fallback found
|
|
|
|
var fallbackGlyphTypeface = fontManager.GetOrAddGlyphTypeface(fallbackTypeface); |
|
|
|
|
|
|
|
if (TryGetShapeableLength(textSpan, fallbackGlyphTypeface, defaultGlyphTypeface, out count)) |
|
|
|
{ |
|
|
|
return new UnshapedTextRun(text.Slice(0, count), defaultProperties.WithTypeface(fallbackTypeface), |
|
|
|
biDiLevel); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// no fallback found
|
|
|
|
|