[Python-Dev] RE: [Python-checkins] python/dist/src/Objects typeobject.c, 2.244, 2.245

Raymond Hettinger python at rcn.com
Fri Oct 24 10:06:11 EDT 2003


[Guido van Rossum]
> >   Py_INCREF(Py_True);
> >   return Py_True;
> >
> > takes less time than
> >
> >   return PyBool_FromLong(1);
> >
> > Maybe a pair of macros Py_return_True and Py_return_False would make
> > sense?


[Armin Rigo]
> Sorry if this was already suggested and hastily rejected, but why do
we
> care
> at all about the reference counter of the few heavily-used immortal
> objects of
> CPython?
> 
> I guess allowing their counter not to be carefully maintained ventures
to
> the
> slippery slopes of bad code.  Anyway, my two cents for a (very)
slightly
> faster and shorter code would be to be allowed never to do Py_INCREF
or
> Py_DECREF when we know that the object is Py_None, Py_False or
Py_True.
> These
> three would have a dummy tp_dealloc that just resets the reference
counter
> to
> some large value if it ever reaches zero.


Hmm, how about having the macros do the increments while in the debug
but skip them for production code.  That would keep the quality controls
in, not break existing leak detection methods, and save the microseconds
for incrementing.


Raymond




More information about the Python-Dev mailing list