vcl/generic/fontmanager/fontconfig.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+)
New commits: commit d95456fc4cd10a09ac5d097ba1a06ae884f7f9f1 Author: Mark Wielaard <[email protected]> Date: Mon May 20 00:18:23 2013 +0200 Fix memory leak in mapToFontConfigLangTag. FcGetLangs() will return a new FCStrSet that needs to be freed after usage. Change-Id: Ie7fe0dd160fa59077d6a90878e70d0e034680812 Reviewed-on: https://gerrit.libreoffice.org/3967 Reviewed-by: Fridrich Strba <[email protected]> Tested-by: Fridrich Strba <[email protected]> diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx index dc8dfa7..3e23fc9 100644 --- a/vcl/generic/fontmanager/fontconfig.cxx +++ b/vcl/generic/fontmanager/fontconfig.cxx @@ -811,11 +811,17 @@ namespace sLangAttrib = OUStringToOString(rLangTag.getBcp47(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr())) + { + FcStrSetDestroy(pLangSet); return sLangAttrib; + } sLangAttrib = OUStringToOString(rLangTag.getLanguageAndScript(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr())) + { + FcStrSetDestroy(pLangSet); return sLangAttrib; + } OString sLang = OUStringToOString(rLangTag.getLanguage(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); OString sRegion = OUStringToOString(rLangTag.getCountry(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); @@ -824,11 +830,17 @@ namespace { sLangAttrib = sLang + OString('-') + sRegion; if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr())) + { + FcStrSetDestroy(pLangSet); return sLangAttrib; + } } if (FcStrSetMember(pLangSet, (const FcChar8*)sLang.getStr())) + { + FcStrSetDestroy(pLangSet); return sLang; + } return OString(); #else _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
