Recently, "Martin v. Loewis" martin@v.loewis.de said:
There's a lot of Python objects that are really little more than wrappers around an opaque C pointer (plus all the methods to operate on it, etc).
Can you give a few examples? I'm not aware of any such types, off-hand.
All the Mac toolbox objects (Windows, Dialogs, Controls, Menus and a zillion more), All the Windows HANDLEs, all the MFC objects (although they might be a bit more difficult), the objects in the X11 and Motif modules, the pyexpat parser object, *dbm objects, dlmodule objects, mpz objects, zlib objects, SGI cl and al objects....
Enough examples? :-) -- - Jack Jansen Jack.Jansen@oratrix.com http://www.cwi.nl/~jack - - If I can't dance I don't want to be part of your revolution -- Emma Goldman -
Jack Jansen wrote:
Recently, "Martin v. Loewis" martin@v.loewis.de said:
There's a lot of Python objects that are really little more than wrappers around an opaque C pointer (plus all the methods to operate on it, etc).
Can you give a few examples? I'm not aware of any such types, off-hand.
All the Mac toolbox objects (Windows, Dialogs, Controls, Menus and a zillion more), All the Windows HANDLEs, all the MFC objects (although they might be a bit more difficult), the objects in the X11 and Motif modules, the pyexpat parser object, *dbm objects, dlmodule objects, mpz objects, zlib objects, SGI cl and al objects....
Enough examples? :-)
Sounds like you want to introduce a "buffer" interface for these objects. If that's the case, please write a PEP for it -- I don't think anyone on this list wants to see a second can of worms like the buffer interface in Python :-/
All the Mac toolbox objects (Windows, Dialogs, Controls, Menus and a zillion more), All the Windows HANDLEs, all the MFC objects (although they might be a bit more difficult), the objects in the X11 and Motif modules, the pyexpat parser object, *dbm objects, dlmodule objects, mpz objects, zlib objects, SGI cl and al objects....
Could you please try once more, being serious this time? AFAICT, I was asking for examples of types that are parsed by means of O& currently, and do so just to get a void** from the python object.
Looking at pyexpat.c, I find a few uses of O&, none related to the pyexpat parser object. In zlibmodule.c, I find not a single mentioning of O&, likewise in dlmodule.c, clmodule.c, almodule.c, dbmmodule.c, and now I'm losing interest into verifying more of your examples.
AFAICT, you are trying to replace O& with something. Where, exactly (specific source file and line number), would you want to do that?
Regards, Martin