]> granicus.if.org Git - python/commitdiff
Better implementation of PyCObject_AsVoidPtr().
authorGuido van Rossum <guido@python.org>
Thu, 5 Dec 1996 21:53:15 +0000 (21:53 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 5 Dec 1996 21:53:15 +0000 (21:53 +0000)
Objects/cobject.c

index 24b860e1afef42d295effd8b1bfbbd70c10e6cd9..4016b91c4f27395aa7220e6369727e40d0e57c33 100644 (file)
@@ -57,13 +57,6 @@ PyCObject_FromVoidPtr(cobj, destr)
        return (PyObject *)self;
 }
 
-void *
-PyCObject_AsVoidPtr(self)
-       PyObject *self;
-{
-        return ((PyCObject *)self)->cobject;
-}
-
 static void
 PyCObject_dealloc(self)
        PyCObject *self;
@@ -105,3 +98,21 @@ PyTypeObject PyCObject_Type = {
        0L,0L,0L,0L,
        PyCObject_Type__doc__ /* Documentation string */
 };
+
+void *
+PyCObject_AsVoidPtr(self)
+       PyObject *self;
+{
+        if(self)
+         {
+           if(self->ob_type == &PyCObject_Type)
+             return ((PyCObject *)self)->cobject;
+           PyErr_SetString(PyExc_TypeError,
+                           "PyCObject_AsVoidPtr with non-C-object");
+         }
+       if(! PyErr_Occurred())
+           PyErr_SetString(
+               PyExc_TypeError,
+              "PyCObject_AsVoidPtr called with null pointer");
+       return NULL;
+}