[Bf-blender-cvs] [a04f7de] blender-v2.73-release: Fix a very stupid memleak in own bpy_app_translations.c code...

Bastien Montagne noreply at git.blender.org
Tue Jan 6 10:44:45 CET 2015


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[] = {




More information about the Bf-blender-cvs mailing list