From f0cbb189432d23dc8bab40d72759d050b2e423cf Mon Sep 17 00:00:00 2001 From: Ryan Bluth Date: Mon, 27 May 2024 05:53:06 -0400 Subject: [PATCH] Don't panic when replacement glyph is not found (#4542) I wanted to implement a font picker that loads all system fonts but ran into panics due to missing glyphs. Falling back to an empty glyph when none of the fallback glyphs are available avoids the panic. --- crates/epaint/src/text/font.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/epaint/src/text/font.rs b/crates/epaint/src/text/font.rs index 989698d7..7520c971 100644 --- a/crates/epaint/src/text/font.rs +++ b/crates/epaint/src/text/font.rs @@ -370,9 +370,11 @@ impl Font { .glyph_info_no_cache_or_fallback(PRIMARY_REPLACEMENT_CHAR) .or_else(|| slf.glyph_info_no_cache_or_fallback(FALLBACK_REPLACEMENT_CHAR)) .unwrap_or_else(|| { - panic!( - "Failed to find replacement characters {PRIMARY_REPLACEMENT_CHAR:?} or {FALLBACK_REPLACEMENT_CHAR:?}" - ) + #[cfg(feature = "log")] + log::warn!( + "Failed to find replacement characters {PRIMARY_REPLACEMENT_CHAR:?} or {FALLBACK_REPLACEMENT_CHAR:?}. Will use empty glyph." + ); + (0, GlyphInfo::default()) }); slf.replacement_glyph = replacement_glyph;