From add7370903029003d0907e0cc5a8794b8b690377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 14 May 2018 15:19:34 +0200 Subject: [PATCH] Bug 1442195: Don't crash when finding an unexpected default font type. r=xidorn For now just return sans-serif, though as the FIXME comment indicates we should probably just carry around the font-name instead. MozReview-Commit-ID: CIPbV3R5Ul --HG-- extra : rebase_source : ce8666e747341d203d655e937501806c1646331b --- servo/components/style/properties/gecko.mako.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/servo/components/style/properties/gecko.mako.rs b/servo/components/style/properties/gecko.mako.rs index db8e3e502d82..3f20b8328bde 100644 --- a/servo/components/style/properties/gecko.mako.rs +++ b/servo/components/style/properties/gecko.mako.rs @@ -2326,14 +2326,25 @@ fn static_assert() { let shared_fontlist = unsafe { fontlist.mFontlist.mBasePtr.to_safe() }; if shared_fontlist.mNames.is_empty() { - let default = match fontlist.mDefaultFontType { + let default = fontlist.mDefaultFontType; + let default = match default { FontFamilyType::eFamily_serif => { SingleFontFamily::Generic(atom!("serif")) } - FontFamilyType::eFamily_sans_serif => { + _ => { + // This can break with some combinations of user prefs, see + // bug 1442195 for example. It doesn't really matter in this + // case... + // + // FIXME(emilio): Probably should be storing the whole + // default font name instead though. + debug_assert_eq!( + default, + FontFamilyType::eFamily_sans_serif, + "Default generic should be serif or sans-serif" + ); SingleFontFamily::Generic(atom!("sans-serif")) } - _ => panic!("Default generic must be serif or sans-serif"), }; FontFamily(FontFamilyList::new(Box::new([default]))) } else {