diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2025-03-07 22:38:17 +0200 | 
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-03-11 11:09:59 +0200 | 
| commit | 44fa0c438ae36528b812237488dcbf51f10708e0 (patch) | |
| tree | fb02adc10cd96595b40c0e9cd53dbd79e056823c | |
| parent | d5b72eb78d8958f4cba96dd6cff397063918277b (diff) | |
#3696 LLFontFreetype crash when adding glyph
| -rw-r--r-- | indra/llrender/llfontfreetype.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/indra/llrender/llfontfreetype.cpp b/indra/llrender/llfontfreetype.cpp index 62b551f1e0..649dd369cb 100644 --- a/indra/llrender/llfontfreetype.cpp +++ b/indra/llrender/llfontfreetype.cpp @@ -725,11 +725,11 @@ void LLFontFreetype::renderGlyph(EFontGlyphType bitmap_type, U32 glyph_index, ll              || FT_Err_Invalid_Composite == error              || (FT_Err_Ok != error && LLStringOps::isEmoji(wch)))          { -            glyph_index = FT_Get_Char_Index(mFTFace, '?'); -            // if '?' is not present, potentially can use last index, that's supposed to be null glyph -            if (glyph_index > 0) +            // value~0 always corresponds to the 'missing glyph' +            error = FT_Load_Glyph(mFTFace, 0, FT_LOAD_FORCE_AUTOHINT); +            if (FT_Err_Ok != error)              { -                error = FT_Load_Glyph(mFTFace, glyph_index, load_flags ^ FT_LOAD_COLOR); +                LL_ERRS() << "Loading fallback for char '" << (U32)wch << "', glyph " << glyph_index << " failed with error : " << (S32)error << LL_ENDL;              }          }          llassert_always_msg(FT_Err_Ok == error, message.c_str()); | 
