You just want ret = (PyObject*) arr;
I assume it is PyObject *foo() and you just didn't show it.
-----Original Message----- From: numpy-discussion-admin@lists.sourceforge.net [mailto:numpy-discussion-admin@lists.sourceforge.net] On Behalf Of Mathew Yeates Sent: Friday, February 22, 2002 4:19 PM To: numpy-discussion@lists.sourceforge.net Subject: [Numpy-discussion] memory not being freed
Hi I'm having problems with garbage collection I wrote an extension which creates an array and returns it
foo() { arr = (PyArrayObject *) PyArray_FromDims( ..... ret = Py_BuildValue("O", arr); return ret; }
but now if I do while 1: a=foo()
memory is never free'd. I've even tried explicitly calling gc.collect and adding del(a) after a=foo.
Is the problem that Py_BuildValue increases the reference count?
Mathew
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion