[Python-Dev] Re: tp_clear return value

Jeremy Hylton jeremy@zope.com
10 Apr 2003 15:13:12 -0400


On Thu, 2003-04-10 at 14:09, Tim Peters wrote:
> I'm not suggesting adding setjmp/longjmp to the Python language <0.9 wink>.
> I'm suggesting using them for two specific and obscure gc module callbacks
> that aren't normally used (*most* of the gc module callbacks wouldn't use
> setjmp/longjmp); in return, mounds of frequently executed code like

...

> could become the simpler and faster

...

Sure sounds good to me.

If traverse worked this way, the traverse and clear slots and a part of
the dealloc slot become almost identical.  The take all PyObject *
members in the struct and perform some action on them if they are
non-NULL.  dealloc performs a DECREF.  clear performs a DECREF + assign
NULL.  traverse calls visit.  It sure makes it easy to verify that each
is implemented correctly.  It would be cool if there were a way to
automate some of the boilerplate.

Jeremy