En Fri, 27 Mar 2009 03:10:06 -0300, jesse <jberw...@gmail.com> escribió:
I give up. I cannot find my memory leak! I'm hoping that someone out
there has come across something similar. Let me lay out the basic
setup:
[...]
4) C: A PyList object, L, is created (new reference!). This will hold
the solution vector for the ODE
[...]
7) C: Return L to Python with return Py_BuildValue("N", L).
I don't know the "N" format, but if Py_BuildValue returns a new reference,
you're leaking a reference to the L list.
Why don't you return L directly?
You can use sys.getrefcount in Python to see the reference count for an
object:
py> from sys import getrefcount as rc
py> x = object()
py> rc(x)
2 # the name x, and a temporary reference as parameter
py> rc([])
1 # only the temporary reference
py> x = y = []
py> rc(x)
3
py> x = ()
py> rc(x)
954 # the empty tuple is shared
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list