From a5db5d5eeb315963b3bc4543951928a5c4969398 Mon Sep 17 00:00:00 2001 From: Deokjin Kim Date: Fri, 6 Dec 2013 16:50:25 +0900 Subject: [PATCH] Use last resort font when only there is no font in font group. There is a little bit of performance gain of layout. --- src/components/gfx/font_context.rs | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/components/gfx/font_context.rs b/src/components/gfx/font_context.rs index 798e883acd1..5d662a348ed 100644 --- a/src/components/gfx/font_context.rs +++ b/src/components/gfx/font_context.rs @@ -154,23 +154,25 @@ impl<'self> FontContext { } } - let last_resort = FontList::get_last_resort_font_families(); + if fonts.len() == 0 { + let last_resort = FontList::get_last_resort_font_families(); - for family in last_resort.iter() { - let result = match self.font_list { - Some(ref fl) => fl.find_font_in_family(*family, style), - None => None, - }; + for family in last_resort.iter() { + let result = match self.font_list { + Some(ref fl) => fl.find_font_in_family(*family, style), + None => None, + }; - for font_entry in result.iter() { - let font_id = - SelectorPlatformIdentifier(font_entry.handle.face_identifier()); - let font_desc = FontDescriptor::new((*style).clone(), font_id); + for font_entry in result.iter() { + let font_id = + SelectorPlatformIdentifier(font_entry.handle.face_identifier()); + let font_desc = FontDescriptor::new((*style).clone(), font_id); - let instance = self.get_font_by_descriptor(&font_desc); + let instance = self.get_font_by_descriptor(&font_desc); - for font in instance.iter() { - fonts.push(*font); + for font in instance.iter() { + fonts.push(*font); + } } } }