[Python-Dev] Py_CLEAR to avoid crashes

"Martin v. Löwis" martin at v.loewis.de
Tue Feb 19 01:17:50 CET 2008


>> Most Py_DECREF calls are probably okay but it's going to be hard
>> to find the ones that are not.
> 
> I suppose Py_DECREF is not the only source of trouble.  Many calls
> to the Python API can end up calling arbitrary user code (via
> __getattr__, __getitem__, etc.).  Whenever an object does that, it
> must be prepared to be accessed from user code.  I'm guessing there
> are many subtle bugs of this nature lurking.  Py_DECREF is perhaps
> the most common though.  Maybe renaming it to
> Py_DECREF_AND_RUN_EVIL_USER_CODE would help. ;-)

But that's unrelated to this issue. In those other cases, the refcount
won't be zero, so the object is still there.

Regards,
Martin


More information about the Python-Dev mailing list