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

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Fri Nov 21 02:56:38 EST 2003


Update of /cvsroot/python/python/dist/src/Objects
In directory sc8-pr-cvs1:/tmp/cvs-serv3975/Objects

Modified Files:
	setobject.c 
Log Message:
issubset() and issuperset() to work with general iterables

Index: setobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/setobject.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** setobject.c	20 Nov 2003 22:54:33 -0000	1.6
--- setobject.c	21 Nov 2003 07:56:36 -0000	1.7
***************
*** 589,597 ****
  set_issubset(PySetObject *so, PyObject *other)
  {
! 	PyObject *otherdata, *it, *item;
  
  	if (!PyAnySet_Check(other)) {
! 		PyErr_SetString(PyExc_TypeError, "can only compare to a set");
! 		return NULL;
  	}
  	if (set_len(so) > set_len((PySetObject *)other)) 
--- 589,601 ----
  set_issubset(PySetObject *so, PyObject *other)
  {
! 	PyObject *otherdata, *it, *item, *tmp, *result;
  
  	if (!PyAnySet_Check(other)) {
! 		tmp = make_new_set(&PySet_Type, other);
! 		if (tmp == NULL)
! 			return NULL;
! 		result = set_issubset(so, tmp);
! 		Py_DECREF(tmp);
! 		return result;
  	}
  	if (set_len(so) > set_len((PySetObject *)other)) 
***************
*** 622,628 ****
  set_issuperset(PySetObject *so, PyObject *other)
  {
  	if (!PyAnySet_Check(other)) {
! 		PyErr_SetString(PyExc_TypeError, "can only compare to a set");
! 		return NULL;
  	}
  	return set_issubset((PySetObject *)other, (PyObject *)so);
--- 626,638 ----
  set_issuperset(PySetObject *so, PyObject *other)
  {
+ 	PyObject *tmp, *result;
+ 
  	if (!PyAnySet_Check(other)) {
! 		tmp = make_new_set(&PySet_Type, other);
! 		if (tmp == NULL)
! 			return NULL;
! 		result = set_issuperset(so, tmp);
! 		Py_DECREF(tmp);
! 		return result;
  	}
  	return set_issubset((PySetObject *)other, (PyObject *)so);





More information about the Python-checkins mailing list