X-Git-Url: https://git.wh0rd.org/?p=fontconfig.git;a=blobdiff_plain;f=src%2Ffcmatch.c;h=422bc384d2ecbabc2df33e3d10122381d985d9df;hp=f111be52f8114b94d68f5484cc7941f567cd886f;hb=HEAD;hpb=5aaf466d3899842763e746a9c2b745748eb34b48 diff --git a/src/fcmatch.c b/src/fcmatch.c index f111be5..422bc38 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -23,6 +23,7 @@ */ #include "fcint.h" +#include #include #include #include @@ -395,6 +396,9 @@ FcFontRenderPrepare (FcConfig *config, FcValue v; FcResult result; + assert (pat != NULL); + assert (font != NULL); + new = FcPatternCreate (); if (!new) return 0; @@ -514,6 +518,10 @@ FcFontSetMatch (FcConfig *config, { FcPattern *best; + assert (sets != NULL); + assert (p != NULL); + assert (result != NULL); + if (!config) { config = FcConfigGetCurrent (); @@ -536,6 +544,9 @@ FcFontMatch (FcConfig *config, int nsets; FcPattern *best; + assert (p != NULL); + assert (result != NULL); + if (!config) { config = FcConfigGetCurrent (); @@ -672,6 +683,19 @@ FcFontSetSort (FcConfig *config, FcBool *patternLangSat; FcValue patternLang; + assert (sets != NULL); + assert (p != NULL); + assert (result != NULL); + + /* There are some implementation that relying on the result of + * "result" to check if the return value of FcFontSetSort + * is valid or not. + * So we should initialize it to the conservative way since + * this function doesn't return NULL anymore. + */ + if (result) + *result = FcResultNoMatch; + if (FcDebug () & FC_DBG_MATCH) { printf ("Sort "); @@ -686,7 +710,7 @@ FcFontSetSort (FcConfig *config, nnodes += s->nfont; } if (!nnodes) - goto bail0; + return FcFontSetCreate (); for (nPatternLang = 0; FcPatternGet (p, FC_LANG, nPatternLang, &patternLang) == FcResultMatch; @@ -749,7 +773,7 @@ FcFontSetSort (FcConfig *config, * If this node matches any language, go check * which ones and satisfy those entries */ - if (nodeps[f]->score[MATCH_LANG_INDEX] < 200) + if (nodeps[f]->score[MATCH_LANG_INDEX] < 2000) { for (i = 0; i < nPatternLang; i++) { @@ -822,6 +846,9 @@ FcFontSort (FcConfig *config, FcFontSet *sets[2]; int nsets; + assert (p != NULL); + assert (result != NULL); + if (!config) { config = FcConfigGetCurrent ();