From 6c0c95d6045d2d2b4e6a3a2f11457850031c57bc Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 22 Aug 2014 21:55:11 +0200 Subject: fontconfig libxcb/xcb-proto mesa xkeyboard-config git update 22 Aug 2014 libxcb/xcb-proto commit 8e3db42d67a0035bb16d16da28bd5eea7a269178 xkeyboard-config commit 10fce2c2baae471795d069f3a5f1307eedb9ff0a fontconfig commit 286cdc9c10b0453c25950103b6a1f7170d15bfdc mesa commit 97d03b9366bfa55b27feb92aa5afacd9c5f6f421 --- fontconfig/doc/fcconfig.fncs | 3 ++- fontconfig/fc-cat/fc-cat.c | 9 +++------ fontconfig/src/fccfg.c | 5 +++++ fontconfig/src/fcinit.c | 9 ++++++++- fontconfig/src/fcmatch.c | 2 +- 5 files changed, 19 insertions(+), 9 deletions(-) (limited to 'fontconfig') diff --git a/fontconfig/doc/fcconfig.fncs b/fontconfig/doc/fcconfig.fncs index 24d7121e4..10f5afc7f 100644 --- a/fontconfig/doc/fcconfig.fncs +++ b/fontconfig/doc/fcconfig.fncs @@ -59,7 +59,8 @@ cause a new configuration to be created for use as current configuration. @PURPOSE@ Set configuration as default @DESC@ Sets the current default configuration to config. Implicitly calls -FcConfigBuildFonts if necessary, returning FcFalse if that call fails. +FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count +in config since 2.12.0, returning FcFalse if that call fails. @@ @RET@ FcConfig * diff --git a/fontconfig/fc-cat/fc-cat.c b/fontconfig/fc-cat/fc-cat.c index 9a2abb3fa..f0131b6d3 100644 --- a/fontconfig/fc-cat/fc-cat.c +++ b/fontconfig/fc-cat/fc-cat.c @@ -298,6 +298,7 @@ main (int argc, char **argv) return 1; } FcConfigSetCurrent (config); + FcConfigDestroy (config); args = FcStrSetCreate (); if (!args) @@ -315,12 +316,6 @@ main (int argc, char **argv) return 1; } } - arglist = FcStrListCreate (args); - if (!arglist) - { - fprintf (stderr, "%s: malloc failure\n", argv[0]); - return 1; - } } else { @@ -340,6 +335,7 @@ main (int argc, char **argv) fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } + FcStrSetDestroy (args); while ((arg = FcStrListNext (arglist))) { @@ -384,6 +380,7 @@ main (int argc, char **argv) if (cache_file) FcStrFree (cache_file); } + FcStrListDone (arglist); FcFini (); return 0; diff --git a/fontconfig/src/fccfg.c b/fontconfig/src/fccfg.c index f8ee8d20e..55cb297cd 100644 --- a/fontconfig/src/fccfg.c +++ b/fontconfig/src/fccfg.c @@ -434,6 +434,7 @@ retry: if (!fc_atomic_ptr_cmpexch (&_fcConfig, cfg, config)) goto retry; + FcConfigReference (config); if (cfg) FcConfigDestroy (cfg); @@ -2405,6 +2406,10 @@ FcConfigSetSysRoot (FcConfig *config, { config = FcInitLoadOwnConfigAndFonts (config); FcConfigSetCurrent (config); + /* FcConfigSetCurrent() increases the refcount. + * decrease it here to avoid the memory leak. + */ + FcConfigDestroy (config); } } diff --git a/fontconfig/src/fcinit.c b/fontconfig/src/fcinit.c index 1e23c1fbb..db62c21f2 100644 --- a/fontconfig/src/fcinit.c +++ b/fontconfig/src/fcinit.c @@ -189,11 +189,18 @@ FcBool FcInitReinitialize (void) { FcConfig *config; + FcBool ret; config = FcInitLoadConfigAndFonts (); if (!config) return FcFalse; - return FcConfigSetCurrent (config); + ret = FcConfigSetCurrent (config); + /* FcConfigSetCurrent() increases the refcount. + * decrease it here to avoid the memory leak. + */ + FcConfigDestroy (config); + + return ret; } FcBool diff --git a/fontconfig/src/fcmatch.c b/fontconfig/src/fcmatch.c index b0e695df3..25081e2cb 100644 --- a/fontconfig/src/fcmatch.c +++ b/fontconfig/src/fcmatch.c @@ -375,7 +375,7 @@ FcCompareValueList (FcObject object, best = 1e99; bestStrong = 1e99; bestWeak = 1e99; - j = 1; + j = 0; for (v1 = v1orig; v1; v1 = FcValueListNext(v1)) { for (v2 = v2orig, k = 0; v2; v2 = FcValueListNext(v2), k++) -- cgit v1.2.3