diff options
author | Akira TAGOH <akira@tagoh.org> | 2021-11-09 20:42:52 +0900 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2021-11-09 20:42:52 +0900 |
commit | 5841bd012df892ce9c48f45781fd9018a6952de5 (patch) | |
tree | 257a5ebf9ea779e5648eaac2fdc50ffb30e1df25 | |
parent | 14c265a10a96008bcbcb9ad517232abbe9e2f7e7 (diff) | |
download | fontconfig-5841bd012df892ce9c48f45781fd9018a6952de5.tar.gz |
Fix some testcase fails for 14c265a1
Add an extra code to ignore an error of FT_Get_MM_Var()
only when FT_MM_Var variable isn't used in any case.
-rw-r--r-- | src/fcfreetype.c | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/src/fcfreetype.c b/src/fcfreetype.c index 70819e0..c477774 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -1232,6 +1232,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face, int st; FcBool symbol = FcFalse; + FT_Error ftresult; FcInitDebug (); /* We might be called with no initizalization whatsoever. */ @@ -1257,11 +1258,13 @@ FcFreeTypeQueryFaceInternal (const FT_Face face, goto bail1; } - if (FT_Get_MM_Var (face, &master)) - goto bail1; + ftresult = FT_Get_MM_Var (face, &master); if (id >> 16) { + if (ftresult) + goto bail1; + if (id >> 16 == 0x8000) { /* Query variable font itself. */ @@ -1353,19 +1356,25 @@ FcFreeTypeQueryFaceInternal (const FT_Face face, } else { - unsigned int i; - for (i = 0; i < master->num_axis; i++) - { - switch (master->axis[i].tag) - { + if (!ftresult) + { + unsigned int i; + for (i = 0; i < master->num_axis; i++) + { + switch (master->axis[i].tag) + { case FT_MAKE_TAG ('o','p','s','z'): - if (!FcPatternObjectAddDouble (pat, FC_SIZE_OBJECT, master->axis[i].def / (double) (1U << 16))) - goto bail1; - variable_size = FcTrue; - break; - } - - } + if (!FcPatternObjectAddDouble (pat, FC_SIZE_OBJECT, master->axis[i].def / (double) (1U << 16))) + goto bail1; + variable_size = FcTrue; + break; + } + } + } + else + { + /* ignore an error of FT_Get_MM_Var() */ + } } if (!FcPatternObjectAddBool (pat, FC_VARIABLE_OBJECT, variable)) goto bail1; |