Commit: a04f7de6b772deabb0374d41d0d1a23ce9965fb9
Author: Bastien Montagne
Date:   Sat Dec 27 17:24:39 2014 +0100
Branches: blender-v2.73-release
https://developer.blender.org/rBa04f7de6b772deabb0374d41d0d1a23ce9965fb9

Fix a very stupid memleak in own bpy_app_translations.c code...

Safe for 2.73.

===================================================================

M       source/blender/python/intern/bpy_app_translations.c

===================================================================

diff --git a/source/blender/python/intern/bpy_app_translations.c 
b/source/blender/python/intern/bpy_app_translations.c
index 6d0161c..2135abd 100644
--- a/source/blender/python/intern/bpy_app_translations.c
+++ b/source/blender/python/intern/bpy_app_translations.c
@@ -241,12 +241,9 @@ static void _build_translations_cache(PyObject 
*py_messages, const char *locale)
        }
 
        /* Clean up! */
-       if (language)
-               MEM_freeN(language);
-       if (language_country)
-               MEM_freeN(language_country);
-       if (language_variant)
-               MEM_freeN(language_variant);
+       MEM_SAFE_FREE(language);
+       MEM_SAFE_FREE(language_country);
+       MEM_SAFE_FREE(language_variant);
 }
 
 const char *BPY_app_translations_py_pgettext(const char *msgctxt, const char 
*msgid)
@@ -631,6 +628,7 @@ PyDoc_STRVAR(app_translations_locale_explode_doc,
 );
 static PyObject *app_translations_locale_explode(BlenderAppTranslations 
*UNUSED(self), PyObject *args, PyObject *kw)
 {
+       PyObject *ret_tuple;
        static const char *kwlist[] = {"locale", NULL};
        const char *locale;
        char *language, *country, *variant, *language_country, 
*language_variant;
@@ -641,7 +639,15 @@ static PyObject 
*app_translations_locale_explode(BlenderAppTranslations *UNUSED(
 
        BLF_locale_explode(locale, &language, &country, &variant, 
&language_country, &language_variant);
 
-       return Py_BuildValue("sssss", language, country, variant, 
language_country, language_variant);
+       ret_tuple = Py_BuildValue("sssss", language, country, variant, 
language_country, language_variant);
+
+       MEM_SAFE_FREE(language);
+       MEM_SAFE_FREE(country);
+       MEM_SAFE_FREE(variant);
+       MEM_SAFE_FREE(language_country);
+       MEM_SAFE_FREE(language_variant);
+
+       return ret_tuple;
 }
 
 static PyMethodDef app_translations_methods[] = {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to