From d448fb999c8f3a2610988a0bbada42fcecc53c36 Mon Sep 17 00:00:00 2001 From: stroeder Date: Mon, 20 Nov 2017 17:33:06 +0000 Subject: [PATCH] assume C extension API for Python 2.7+ --- CHANGES | 1 + Modules/LDAPObject.c | 21 ++++++++++++++++++--- Modules/LDAPObject.h | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 6bd4f73..6f96481 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,7 @@ Modules/ * removed obsolete back-ward compability constants from common.h * build checks whether LDAP_API_VERSION is OpenLDAP 2.4.x * _ldap.__author__ and _ldap.__license__ also set from ldap.pkginfo +* assume C extension API for Python 2.7+ Lib/ * removed all dependencies on modules string and types diff --git a/Modules/LDAPObject.c b/Modules/LDAPObject.c index 3291379..95387a0 100644 --- a/Modules/LDAPObject.c +++ b/Modules/LDAPObject.c @@ -1402,11 +1402,10 @@ setattr(LDAPObject* self, char* name, PyObject* value) PyTypeObject LDAP_Type = { #if defined(MS_WINDOWS) || defined(__CYGWIN__) /* see http://www.python.org/doc/FAQ.html#3.24 */ - PyObject_HEAD_INIT(NULL) + PyVarObject_HEAD_INIT(NULL, 0) #else /* ! MS_WINDOWS */ - PyObject_HEAD_INIT(&PyType_Type) + PyVarObject_HEAD_INIT(&PyType_Type, 0) #endif /* MS_WINDOWS */ - 0, /*ob_size*/ "LDAP", /*tp_name*/ sizeof(LDAPObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ @@ -1421,4 +1420,20 @@ PyTypeObject LDAP_Type = { 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + 0, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + methods, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ }; diff --git a/Modules/LDAPObject.h b/Modules/LDAPObject.h index a0adc3f..8cd6fc3 100644 --- a/Modules/LDAPObject.h +++ b/Modules/LDAPObject.h @@ -25,7 +25,7 @@ typedef struct { } LDAPObject; extern PyTypeObject LDAP_Type; -#define LDAPObject_Check(v) ((v)->ob_type == &LDAP_Type) +#define LDAPObject_Check(v) (Py_TYPE(v) == &LDAP_Type) extern LDAPObject *newLDAPObject( LDAP* );