#5947: add PendingDeprecationWarning to PyCObject functions.
diff --git a/Objects/cobject.c b/Objects/cobject.c
index e9b71df..a692150 100644
--- a/Objects/cobject.c
+++ b/Objects/cobject.c
@@ -9,11 +9,23 @@
typedef void (*destructor1)(void *);
typedef void (*destructor2)(void *, void*);
+
+static int deprecation_exception(void)
+{
+ return PyErr_WarnEx(PyExc_PendingDeprecationWarning,
+ "The CObject API is deprecated as of Python 3.1. "
+ "Please convert to using the Capsule API.", 1);
+}
+
PyObject *
PyCObject_FromVoidPtr(void *cobj, void (*destr)(void *))
{
PyCObject *self;
+ if (deprecation_exception()) {
+ return NULL;
+ }
+
self = PyObject_NEW(PyCObject, &PyCObject_Type);
if (self == NULL)
return NULL;
@@ -30,6 +42,10 @@
{
PyCObject *self;
+ if (deprecation_exception()) {
+ return NULL;
+ }
+
if (!desc) {
PyErr_SetString(PyExc_TypeError,
"PyCObject_FromVoidPtrAndDesc called with null"