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

Reply via email to