Kaydet (Commit) d95456fc authored tarafından Mark Wielaard's avatar Mark Wielaard Kaydeden (comit) Fridrich Strba

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/3967Reviewed-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
Tested-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
üst d0449187
...@@ -811,11 +811,17 @@ namespace ...@@ -811,11 +811,17 @@ namespace
sLangAttrib = OUStringToOString(rLangTag.getBcp47(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); sLangAttrib = OUStringToOString(rLangTag.getBcp47(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase();
if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr())) if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr()))
{
FcStrSetDestroy(pLangSet);
return sLangAttrib; return sLangAttrib;
}
sLangAttrib = OUStringToOString(rLangTag.getLanguageAndScript(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); sLangAttrib = OUStringToOString(rLangTag.getLanguageAndScript(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase();
if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr())) if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr()))
{
FcStrSetDestroy(pLangSet);
return sLangAttrib; return sLangAttrib;
}
OString sLang = OUStringToOString(rLangTag.getLanguage(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); OString sLang = OUStringToOString(rLangTag.getLanguage(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase();
OString sRegion = OUStringToOString(rLangTag.getCountry(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase(); OString sRegion = OUStringToOString(rLangTag.getCountry(), RTL_TEXTENCODING_UTF8).toAsciiLowerCase();
...@@ -824,11 +830,17 @@ namespace ...@@ -824,11 +830,17 @@ namespace
{ {
sLangAttrib = sLang + OString('-') + sRegion; sLangAttrib = sLang + OString('-') + sRegion;
if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr())) if (FcStrSetMember(pLangSet, (const FcChar8*)sLangAttrib.getStr()))
{
FcStrSetDestroy(pLangSet);
return sLangAttrib; return sLangAttrib;
}
} }
if (FcStrSetMember(pLangSet, (const FcChar8*)sLang.getStr())) if (FcStrSetMember(pLangSet, (const FcChar8*)sLang.getStr()))
{
FcStrSetDestroy(pLangSet);
return sLang; return sLang;
}
return OString(); return OString();
#else #else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment