diff options
author | Akira TAGOH <akira@tagoh.org> | 2012-03-22 19:15:27 +0900 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2012-03-22 19:15:27 +0900 |
commit | 92ac054ce5e270f22a4f81a09522c3f03b76c876 (patch) | |
tree | 93c6b0f2d103ea456823d81ed5c31d9c63233ca1 | |
parent | 1db3e9cdd8bc7408e630934cfc8deda7798b8970 (diff) |
fcmatch: Set FcResultMatch at the end if the return value is valid.
In the previous code, the result of 'result' in the argument for
FcFontSetSort() and FcFontSetMatch() wasn't predictable and not reliable to
check if the return value is valid or not. this change is to ensure if it's
performed successfully.
-rw-r--r-- | src/fcmatch.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/fcmatch.c b/src/fcmatch.c index 422bc38..92e4a66 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -501,11 +501,11 @@ FcFontSetMatchInternal (FcConfig *config, printf ("\n"); FcPatternPrint (best); } - if (!best) - { - *result = FcResultNoMatch; - return 0; - } + /* assuming that 'result' is initialized with FcResultNoMatch + * outside this function */ + if (best) + *result = FcResultMatch; + return best; } @@ -522,6 +522,8 @@ FcFontSetMatch (FcConfig *config, assert (p != NULL); assert (result != NULL); + *result = FcResultNoMatch; + if (!config) { config = FcConfigGetCurrent (); @@ -547,6 +549,8 @@ FcFontMatch (FcConfig *config, assert (p != NULL); assert (result != NULL); + *result = FcResultNoMatch; + if (!config) { config = FcConfigGetCurrent (); @@ -826,6 +830,9 @@ FcFontSetSort (FcConfig *config, printf ("First font "); FcPatternPrint (ret->fonts[0]); } + if (ret->nfont > 0) + *result = FcResultMatch; + return ret; bail2: @@ -849,6 +856,8 @@ FcFontSort (FcConfig *config, assert (p != NULL); assert (result != NULL); + *result = FcResultNoMatch; + if (!config) { config = FcConfigGetCurrent (); |