From f5e020a7a6ad6451fcaf075ae14f7014b8a4faea Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 14 Jul 2016 17:28:28 +1000 Subject: PyAPI: fix memory leaks in dictionary assignment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Kévin Dietrich for spotting driver leak, checked other uses of PyDict_SetItem and found more. --- source/blender/python/intern/bpy_app.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender/python/intern/bpy_app.c') diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c index 17617a231b2..93c97d48bac 100644 --- a/source/blender/python/intern/bpy_app.c +++ b/source/blender/python/intern/bpy_app.c @@ -356,10 +356,10 @@ static PyGetSetDef bpy_app_getsets[] = { static void py_struct_seq_getset_init(void) { /* tricky dynamic members, not to py-spec! */ - PyGetSetDef *getset; - - for (getset = bpy_app_getsets; getset->name; getset++) { - PyDict_SetItemString(BlenderAppType.tp_dict, getset->name, PyDescr_NewGetSet(&BlenderAppType, getset)); + for (PyGetSetDef *getset = bpy_app_getsets; getset->name; getset++) { + PyObject *item = PyDescr_NewGetSet(&BlenderAppType, getset); + PyDict_SetItemString(BlenderAppType.tp_dict, getset->name, item); + Py_DECREF(item); } } /* end dynamic bpy.app */ -- cgit v1.2.3