Serhiy Storchaka <storch...@gmail.com> writes: >> I'm not entirely sure of the benefit of a macro over an inline >> function. > > Because the first argument is passed by reference (as in Py_INCREF > etc).
Then a macro implemented using an inline function, e.g., #define Py_REPLACE(p, x) Py_REPLACE_impl(&(p), x). Were INCREF implemented this way it could return the reference (imagine Py_REPLACE(foo, Py_INCREF(bar))). The other advantage to an inline function is that it lets the compiler make the decision about optimizing for size or time. >> I think "SET" names imply that it's safe if the original >> reference is NULL. This isn't an objection to the names, but if >> it is given one of those names I think it should use Py_XDECREF. > > Originally I proposed pairs of functions with and withot X in the name > (as Py_DECREF/Py_XDECREF). In this poll this detail is omitted for > clearness. Later we can create a new poll if needed. I think that any variant on "SET" strongly implies that it need not have already been set, and think even a "SET/REPLACE" pair would be better than "XSET/SET". _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com