diff options
Diffstat (limited to 'vcl/generic/fontmanager/fontconfig.cxx')
-rw-r--r-- | vcl/generic/fontmanager/fontconfig.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx index dc8dfa7976e1..3e23fc9f21d5 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 |