forked from bartvdbraak/blender
Fix leak on exit when WITH_PYTHON_SAFETY is enabled
The lead only occurred when Python references were leaking as well.
This commit is contained in:
parent
c1c6c11ca6
commit
fe958d7d99
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user