[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 */
  };