cvs: gd(GD_2_0) /libgd/src gdft.c

[email protected] ("Takeshi Abe") Wed, 15 Apr 2009 17:30:45 -0000
Newsgroups php.gd.cvs
Message-ID <cvstabe1239816645@cvsserver>
tabe		Wed Apr 15 17:30:45 2009 UTC

  Modified files:              (Branch: GD_2_0)
    /gd/libgd/src	gdft.c 
  Log:
  MFH: decrement the pattern reference count in case of failure.
  
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gdft.c?r1=1.28.2.13&r2=1.28.2.14&diff_format=u
Index: gd/libgd/src/gdft.c
diff -u gd/libgd/src/gdft.c:1.28.2.13 gd/libgd/src/gdft.c:1.28.2.14
--- gd/libgd/src/gdft.c:1.28.2.13	Wed Apr 15 16:20:26 2009
+++ gd/libgd/src/gdft.c	Wed Apr 15 17:30:45 2009
@@ -1511,8 +1511,12 @@
       font = find_font(pattern);
       FcPatternDestroy(pattern);
 
-      if (!font || FcPatternGetString(font, FC_FAMILY, 0, &family) != FcResultMatch)
-	return "fontconfig: Couldn't retrieve font family name.";
+      if (!font)
+        return "fontconfig: Couldn't find font.";
+      if (FcPatternGetString(font, FC_FAMILY, 0, &family) != FcResultMatch) {
+        FcPatternDestroy(font);
+        return "fontconfig: Couldn't retrieve font family name.";
+      }
       
       /* Check whether we got the font family we wanted. */
       if (strcmp((const char *)family, postscript_alias[i].family) != 0) {
@@ -1552,8 +1556,12 @@
   }
 #endif
 
-  if (!font || FcPatternGetString(font, FC_FILE, 0, &file) != FcResultMatch)
+  if (!font)
+    return "fontconfig: Couldn't find font.";
+  if (FcPatternGetString(font, FC_FILE, 0, &file) != FcResultMatch) {
+    FcPatternDestroy(font);
     return "fontconfig: Couldn't retrieve font file name.";
+  }
 
   *fontpath = strdup((const char *)file);