[Python-checkins] CVS: python/dist/src/Objects classobject.c,2.135,2.136
Guido van Rossum
gvanrossum@users.sourceforge.net
Wed, 15 Aug 2001 10:52:33 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv1823
Modified Files:
classobject.c
Log Message:
PyMethod_Type: add a tp_descr_get slot function to ensure proper
binding of unbound methods.
Index: classobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/classobject.c,v
retrieving revision 2.135
retrieving revision 2.136
diff -C2 -d -r2.135 -r2.136
*** classobject.c 2001/08/08 05:00:18 2.135
--- classobject.c 2001/08/15 17:52:31 2.136
***************
*** 2194,2197 ****
--- 2194,2205 ----
}
+ static PyObject *
+ instancemethod_descr_get(PyObject *meth, PyObject *obj, PyObject *type)
+ {
+ if (obj == Py_None)
+ obj = NULL;
+ return PyMethod_New(PyMethod_GET_FUNCTION(meth), obj, type);
+ }
+
PyTypeObject PyMethod_Type = {
PyObject_HEAD_INIT(&PyType_Type)
***************
*** 2220,2224 ****
0, /* tp_clear */
0, /* tp_richcompare */
! offsetof(PyMethodObject, im_weakreflist) /* tp_weaklistoffset */
};
--- 2228,2242 ----
0, /* tp_clear */
0, /* tp_richcompare */
! offsetof(PyMethodObject, im_weakreflist), /* tp_weaklistoffset */
! 0, /* tp_iter */
! 0, /* tp_iternext */
! 0, /* tp_methods */
! 0, /* tp_members */
! 0, /* tp_getset */
! 0, /* tp_base */
! 0, /* tp_dict */
! instancemethod_descr_get, /* tp_descr_get */
! 0, /* tp_descr_set */
! 0, /* tp_dictoffset */
};