diff --git a/components/gfx/font.rs b/components/gfx/font.rs index 8c9c1ca0b81..de056747bd9 100644 --- a/components/gfx/font.rs +++ b/components/gfx/font.rs @@ -56,7 +56,7 @@ pub trait FontHandleMethods: Sized { ) -> Result; fn template(&self) -> Arc; - fn family_name(&self) -> String; + fn family_name(&self) -> Option; fn face_name(&self) -> Option; fn style(&self) -> font_style::T; @@ -289,7 +289,8 @@ impl Font { debug!("{} font table[{}] with family={}, face={}", status, tag.tag_to_str(), - self.handle.family_name(), self.handle.face_name().unwrap_or("unavailable".to_owned())); + self.handle.family_name().unwrap_or("unavailable".to_owned()), + self.handle.face_name().unwrap_or("unavailable".to_owned())); result } diff --git a/components/gfx/platform/freetype/font.rs b/components/gfx/platform/freetype/font.rs index 6c2a6b92696..04318ce7ff8 100644 --- a/components/gfx/platform/freetype/font.rs +++ b/components/gfx/platform/freetype/font.rs @@ -148,9 +148,14 @@ impl FontHandleMethods for FontHandle { self.font_data.clone() } - fn family_name(&self) -> String { + fn family_name(&self) -> Option { unsafe { - c_str_to_string((*self.face).family_name as *const c_char) + let family_name = (*self.face).family_name; + if !family_name.is_null() { + Some(c_str_to_string(family_name as *const c_char)) + } else { + None + } } } diff --git a/components/gfx/platform/macos/font.rs b/components/gfx/platform/macos/font.rs index 8025f1b33df..e09407b9a39 100644 --- a/components/gfx/platform/macos/font.rs +++ b/components/gfx/platform/macos/font.rs @@ -195,8 +195,8 @@ impl FontHandleMethods for FontHandle { self.font_data.clone() } - fn family_name(&self) -> String { - self.ctfont.family_name() + fn family_name(&self) -> Option { + Some(self.ctfont.family_name()) } fn face_name(&self) -> Option { diff --git a/components/gfx/platform/windows/font.rs b/components/gfx/platform/windows/font.rs index e657996d119..6ea8dcf0538 100644 --- a/components/gfx/platform/windows/font.rs +++ b/components/gfx/platform/windows/font.rs @@ -294,8 +294,8 @@ impl FontHandleMethods for FontHandle { self.font_data.clone() } - fn family_name(&self) -> String { - self.info.family_name.clone() + fn family_name(&self) -> Option { + Some(self.info.family_name.clone()) } fn face_name(&self) -> Option {