[Python-Dev] Need advice, maybe support

Martin v. Löwis martin@v.loewis.de
19 May 2003 22:10:45 +0200


Christian Tismer <tismer@tismer.com> writes:

> The problem is that I need to give extra semantics to existing
> objects, which are PyCFunction objects.  I think putting an extra
> bit into the type object doesn't help, unless I use a new type. But
> then I don't need the flag.  An old extension module which is loaded
> into my Python will always use my PyCFunction, since this is always
> borrowed.

I understand the concern is not about changing PyCFunction, but about
changing PyMethodDef, which would get another field.

I think you can avoid adding a field to PyMethodDef, by providing a
PyMethodDefEx structure, which has the extra field, and is referred-to
from (a new slot in) the type object. The slots in the type object
that refer to PyMethodDefs would either get set to NULL, or
initialized with a copy of the PyMethodDefEx with the extra field
removed.

Regards,
Martin