Just a reply to one part of your message, as I really need to get back to work for now.

Antoine Pitrou wrote:
I think solution #1 would be the best one.
#2 looks too complicated.

#2 is a seven-line diff, below.


/larry/

Index: cobject.c
===================================================================
--- cobject.c   (revision 79396)
+++ cobject.c   (working copy)
@@ -50,7 +50,12 @@
PyCObject_AsVoidPtr(PyObject *self)
{
    if (self) {
-        if (self->ob_type == &PyCObject_Type)
+        if (PyCapsule_CheckExact(self)) {
+            const char *name = PyCapsule_GetName(self);
+            const void *value = PyCapsule_GetPointer(self, name);
+            return value;
+        }
+        else if (self->ob_type == &PyCObject_Type)
            return ((PyCObject *)self)->cobject;
        PyErr_SetString(PyExc_TypeError,
                        "PyCObject_AsVoidPtr with non-C-object");

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to