From 92ac054ce5e270f22a4f81a09522c3f03b76c876 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Thu, 22 Mar 2012 19:15:27 +0900 Subject: [PATCH] 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. --- src/fcmatch.c | 19 ++++++++++++++----- 1 file 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 ();