diff --git a/Modules/LDAPObject.c b/Modules/LDAPObject.c index 3e08473..a434986 100644 --- a/Modules/LDAPObject.c +++ b/Modules/LDAPObject.c @@ -1059,7 +1059,12 @@ l_ldap_result4( LDAPObject* self, PyObject *args ) pmsg = LDAPmessage_to_python( self->ldap, msg, add_ctrls, add_intermediates ); - result_str = LDAPconstant( res_type ); + if (res_type == 0) { + result_str = Py_None; + Py_INCREF(Py_None); + } else { + result_str = PyInt_FromLong( res_type ); + } if (pmsg == NULL) { retval = NULL; diff --git a/Modules/constants.c b/Modules/constants.c index 7ed9e41..cd3877c 100644 --- a/Modules/constants.c +++ b/Modules/constants.c @@ -6,35 +6,12 @@ #include "lber.h" #include "ldap.h" -static PyObject* reverse; -static PyObject* forward; - -/* convert an result integer into a Python string */ - -PyObject* -LDAPconstant( int val ) { - PyObject *i = PyInt_FromLong( val ); - PyObject *s = PyObject_GetItem( reverse, i ); - if (s == NULL) { - PyErr_Clear(); - return i; - } - Py_DECREF(i); - return s; -} - /* initialise the module constants */ void LDAPinit_constants( PyObject* d ) { - PyObject *zero, *author,*obj; - - reverse = PyDict_New(); - forward = PyDict_New(); - - PyDict_SetItemString( d, "_reverse", reverse ); - PyDict_SetItemString( d, "_forward", forward ); + PyObject *obj; #define add_int(d, name) \ { \ @@ -91,10 +68,6 @@ LDAPinit_constants( PyObject* d ) /* reversibles */ - zero = PyInt_FromLong( 0 ); - PyDict_SetItem( reverse, zero, Py_None ); - Py_DECREF( zero ); - add_int(d,RES_BIND); add_int(d,RES_SEARCH_ENTRY); add_int(d,RES_SEARCH_RESULT);