Jeremy Moles wrote:
> When I add an object created locally to a mapping or sequence ...
> I need to call Py_DECREF on the object, right? ... for example:
> PyObject* list = Py_Buildvalue("[]");
> ...
> PyObject* num = Py_BuildValue("i", 10);
> PyList_Append(list, num);
> ...
>
> ... does anyone have any tools and/or recommendations for detecting
> memory leaks when writing extension modules in C? ...
Here's how to answer this for yourself:
PyObject* list = Py_Buildvalue("[]");
int precount;
...
PyObject* num = Py_BuildValue("i", 10);
precount = num.ob_refcnt;
PyList_Append(list, num);
<here compare precount and num.ob_refcnt>
...
If you need to do the DECREF, precount should exceed num.ob_refcnt.
If they match, the "PyList_Append" call "stole" your reference.
--Scott David Daniels
[EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list