[Bf-blender-cvs] [d81e947c591] master: BLF: Fallback Stack Error Handling

Harley Acheson noreply at git.blender.org
Tue Aug 30 20:31:21 CEST 2022


Commit: d81e947c591ec6f3de2bc407b9f837b2efa36890
Author: Harley Acheson
Date:   Tue Aug 30 11:29:47 2022 -0700
Branches: master
https://developer.blender.org/rBd81e947c591ec6f3de2bc407b9f837b2efa36890

BLF: Fallback Stack Error Handling

Properly handle invalid fonts.

See D15798 for more details

Differential Revision: https://developer.blender.org/D15798

Reviewed by Brecht Van Lommel

===================================================================

M	source/blender/blenfont/intern/blf_font.c
M	source/blender/blenfont/intern/blf_font_default.c

===================================================================

diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 886c34654c4..fb157c71172 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -110,6 +110,10 @@ static FT_Error blf_cache_face_requester(FTC_FaceID faceID,
     font->face->generic.data = font;
     font->face->generic.finalizer = blf_face_finalizer;
   }
+  else {
+    /* Clear this on error to avoid exception in FTC_Manager_LookupFace. */
+    *face = NULL;
+  }
 
   return err;
 }
diff --git a/source/blender/blenfont/intern/blf_font_default.c b/source/blender/blenfont/intern/blf_font_default.c
index a88da6099e5..ffeee397c20 100644
--- a/source/blender/blenfont/intern/blf_font_default.c
+++ b/source/blender/blenfont/intern/blf_font_default.c
@@ -65,7 +65,9 @@ void BLF_load_font_stack()
     struct direntry *dir;
     uint num_files = BLI_filelist_dir_contents(path, &dir);
     for (int f = 0; f < num_files; f++) {
-      if (!FILENAME_IS_CURRPAR(dir[f].relname) && !BLI_is_dir(dir[f].path)) {
+      if (!BLI_is_dir(dir[f].path) &&
+          BLI_path_extension_check_n(
+              dir[f].path, ".ttf", ".ttc", ".otf", ".otc", ".woff", ".woff2", NULL)) {
         if (!BLF_is_loaded(dir[f].path)) {
           int font_id = BLF_load(dir[f].path);
           if (font_id == -1) {



More information about the Bf-blender-cvs mailing list