X-Git-Url: https://git.wh0rd.org/?p=fontconfig.git;a=blobdiff_plain;f=src%2Ffcmatch.c;h=422bc384d2ecbabc2df33e3d10122381d985d9df;hp=1b9162b46cde6ee2fe4974185f17c54939aed9ba;hb=a18ca17b6211f62fbd1d893811b94b8c83db4cc0;hpb=cbb6ee1662f1219518677a9d489159778a812782 diff --git a/src/fcmatch.c b/src/fcmatch.c index 1b9162b..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; @@ -822,6 +846,9 @@ FcFontSort (FcConfig *config, FcFontSet *sets[2]; int nsets; + assert (p != NULL); + assert (result != NULL); + if (!config) { config = FcConfigGetCurrent ();