[Python-checkins] python/dist/src/Objects setobject.c,1.7,1.8

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Fri Nov 21 13:36:56 EST 2003


Update of /cvsroot/python/python/dist/src/Objects
In directory sc8-pr-cvs1:/tmp/cvs-serv20320/Objects
Modified Files:
	setobject.c 
Log Message:
Allow temporary hashability for the __contains__ test.
(Requested by Alex Martelli.)
Index: setobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/setobject.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** setobject.c	21 Nov 2003 07:56:36 -0000	1.7
--- setobject.c	21 Nov 2003 18:36:53 -0000	1.8
***************
*** 105,109 ****
 set_contains(PySetObject *so, PyObject *key)
 {
! 	return PySequence_Contains(so->data, key);
 }
 
--- 105,125 ----
 set_contains(PySetObject *so, PyObject *key)
 {
! 	PyObject *olddict;
! 	PySetObject *tmp;
! 	int result;
! 
! 	result = PySequence_Contains(so->data, key);
! 	if (result == -1 && PyType_IsSubtype(key->ob_type, &PySet_Type)) {
! 		PyErr_Clear();
! 		tmp = (PySetObject *)make_new_set(&PyFrozenSet_Type, NULL);
! 		if (tmp == NULL)
! 			return -1;
! 		olddict = tmp->data;
! 		tmp->data = ((PySetObject *)(key))->data;
! 		result = PySequence_Contains(so->data, (PyObject *)tmp);
! 		tmp->data = olddict;
! 		Py_DECREF(tmp);
! 	}
! 	return result;
 }
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /