Fix own stupid memory leak in new py i18n code (forgot to free temp keys when searchi...
authorBastien Montagne <montagne29@wanadoo.fr>
Wed, 23 Jan 2013 07:59:07 +0000 (07:59 +0000)
committerBastien Montagne <montagne29@wanadoo.fr>
Wed, 23 Jan 2013 07:59:07 +0000 (07:59 +0000)
Thanks to PerfectionCat for finding this.

source/blender/python/intern/bpy_app_translations.c

index 13ca90c4e34a4f10fa4dd002771c03d5efe59fc9..dffa8f20fa3141e0e4e7c42514bed6a30867f85f 100644 (file)
@@ -73,7 +73,7 @@ typedef struct GHashKey {
 
 static GHashKey *_ghashutil_keyalloc(const void *msgctxt, const void *msgid)
 {
-       GHashKey *key = MEM_mallocN(sizeof(GHashKey), "GHashPair");
+       GHashKey *key = MEM_mallocN(sizeof(GHashKey), "Py i18n GHashKey");
        key->msgctxt = BLI_strdup(msgctxt ? msgctxt : BLF_I18NCONTEXT_DEFAULT_BPY_INTERN);
        key->msgid = BLI_strdup(msgid);
        return key;
@@ -286,6 +286,8 @@ const char *BPY_app_translations_py_pgettext(const char *msgctxt, const char *ms
 
        tmp = BLI_ghash_lookup(_translations_cache, key);
 
+       _ghashutil_keyfree((void *)key);
+
        if (tmp)
                return tmp;
        return msgid;