From: Guido van Rossum Date: Thu, 5 Dec 1996 21:53:15 +0000 (+0000) Subject: Better implementation of PyCObject_AsVoidPtr(). X-Git-Tag: v1.5a1~892 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=04f95d5238a5e17b8dbba29ee88b99b7cd58bdbf;p=python Better implementation of PyCObject_AsVoidPtr(). --- diff --git a/Objects/cobject.c b/Objects/cobject.c index 24b860e1af..4016b91c4f 100644 --- a/Objects/cobject.c +++ b/Objects/cobject.c @@ -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; +}