[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