aboutsummaryrefslogtreecommitdiff
path: root/fontconfig/src/fcmatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'fontconfig/src/fcmatch.c')
-rw-r--r--fontconfig/src/fcmatch.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/fontconfig/src/fcmatch.c b/fontconfig/src/fcmatch.c
index 1b9162b46..422bc384d 100644
--- a/fontconfig/src/fcmatch.c
+++ b/fontconfig/src/fcmatch.c
@@ -23,6 +23,7 @@
*/
#include "fcint.h"
+#include <assert.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
@@ -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 ();