FcResult res = 0;
font_config = FcInitLoadConfigAndFonts();
+ if (font_config == NULL)
+ return ret;
pat = FcPatternBuild(0, FC_FAMILY, FcTypeString, alias, (char *)0);
+
+ if (pat == NULL) {
+ if (font_config != NULL) {
+ FcConfigDestroy(font_config);
+ font_config = NULL;
+ }
+ return ret;
+ }
+
FcConfigSubstitute(font_config, pat, FcMatchPattern);
FcDefaultSubstitute(pat);
/* do matching */
set = FcFontSort(font_config, pat, FcTrue, NULL, &res);
- if (set && (set->nfont > 0)) {
+ if (set != NULL && (set->nfont > 0)) {
FcPatternGetString(set->fonts[0], FC_FAMILY, 0, &family);
ret = g_strdup((char *)family);
set = NULL;
}
- if (pat) {
+ if (set != NULL) {
+ FcFontSetDestroy(set);
+ set = NULL;
+ }
+
+ if (pat != NULL) {
FcPatternDestroy(pat);
pat = NULL;
}
- FcConfigDestroy(font_config);
- font_config = NULL;
+ if (font_config != NULL) {
+ FcConfigDestroy(font_config);
+ font_config = NULL;
+ }
return ret;
}