Serhiy Storchaka added the comment:

Py_SETREF() is used not only for fixing possible bugs. It can make the correct 
code shorter and cleaner. For example Stephan appreciated this in df78978dacab. 
In most case the difference between Py_DECREF and Py_XDECREF looks negligible.

Most of the SETREFs in the next() functions in the itertools module replace 
Py_CLEAR and therefore don't add additional overhead (but may fix possible 
bugs). The only Py_DECREF were replaced in tee_next() and accumulate_next(). 
But they are used not in tight loop. Py_SETREF in tee_next() is executed only 
for every 57th call. It unlikely causes any measurable degradation. Py_SETREF 
in accumulate_next() is used together with calling PyIter_Next and 
PyNumber_Add() or PyObject_CallFunctionObjArgs() which takes much more time.

In any case it would be nice to see any measurements that show a degradation.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue26200>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to