@@ -41,7 +41,9 @@ impl DirectWriteSource {
4141
4242 for dwrite_family in self . system_font_collection . families_iter ( ) {
4343 for font_index in 0 ..dwrite_family. get_font_count ( ) {
44- let dwrite_font = dwrite_family. get_font ( font_index) ;
44+ let Ok ( dwrite_font) = dwrite_family. font ( font_index) else {
45+ continue ;
46+ } ;
4547 handles. push ( self . create_handle_from_dwrite_font ( dwrite_font) )
4648 }
4749 }
@@ -54,7 +56,7 @@ impl DirectWriteSource {
5456 Ok ( self
5557 . system_font_collection
5658 . families_iter ( )
57- . map ( |dwrite_family| dwrite_family. name ( ) )
59+ . filter_map ( |dwrite_family| dwrite_family. family_name ( ) . ok ( ) )
5860 . collect ( ) )
5961 }
6062
@@ -63,16 +65,15 @@ impl DirectWriteSource {
6365 /// TODO(pcwalton): Case-insensitivity.
6466 pub fn select_family_by_name ( & self , family_name : & str ) -> Result < FamilyHandle , SelectionError > {
6567 let mut family = FamilyHandle :: new ( ) ;
66- let dwrite_family = match self
67- . system_font_collection
68- . get_font_family_by_name ( family_name)
69- {
70- Some ( dwrite_family) => dwrite_family,
71- None => return Err ( SelectionError :: NotFound ) ,
68+ let dwrite_family = match self . system_font_collection . font_family_by_name ( family_name) {
69+ Ok ( Some ( dwrite_family) ) => dwrite_family,
70+ Err ( _) | Ok ( None ) => return Err ( SelectionError :: NotFound ) ,
7271 } ;
7372 for font_index in 0 ..dwrite_family. get_font_count ( ) {
74- let dwrite_font = dwrite_family. get_font ( font_index) ;
75- family. push ( self . create_handle_from_dwrite_font ( dwrite_font) )
73+ let Ok ( dwrite_font) = dwrite_family. font ( font_index) else {
74+ continue ;
75+ } ;
76+ family. push ( self . create_handle_from_dwrite_font ( dwrite_font) ) ;
7677 }
7778 Ok ( family)
7879 }
0 commit comments