Commit: fe958d7d993e849527839486ef37c6239e3c5f5c Author: Campbell Barton Date: Tue Oct 12 17:52:36 2021 +1100 Branches: master https://developer.blender.org/rBfe958d7d993e849527839486ef37c6239e3c5f5c
Fix leak on exit when WITH_PYTHON_SAFETY is enabled The lead only occurred when Python references were leaking as well. =================================================================== M source/blender/python/intern/bpy_rna.c =================================================================== diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 92499d3c0ff..8c83f611b5c 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -180,6 +180,15 @@ static PyObject *id_free_weakref_cb(PyObject *weakinfo_pair, PyObject *weakref); static PyMethodDef id_free_weakref_cb_def = { "id_free_weakref_cb", (PyCFunction)id_free_weakref_cb, METH_O, NULL}; +/** + * Only used when there are values left on exit (causing memory leaks). + */ +static void id_weakref_pool_free_value_fn(void *p) +{ + GHash *weakinfo_hash = p; + BLI_ghash_free(weakinfo_hash, NULL, NULL); +} + /* Adds a reference to the list, remember to decref. */ static GHash *id_weakref_pool_get(ID *id) { @@ -7633,7 +7642,7 @@ void BPY_rna_exit(void) printf("ID: %s\n", id->name); } } - BLI_ghash_free(id_weakref_pool, NULL, NULL); + BLI_ghash_free(id_weakref_pool, NULL, id_weakref_pool_free_value_fn); id_weakref_pool = NULL; #endif } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs