[Python-checkins] CVS: python/dist/src/Objects object.c,2.124.2.3,2.124.2.4

Thomas Wouters twouters@users.sourceforge.net
Wed, 23 May 2001 06:18:32 -0700


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

Modified Files:
      Tag: release21-maint
	object.c 
Log Message:

Backport Tim's checkin 2.130:

SF bug #422108 - Error in rich comparisons.
Fix a bad (albeit unlikely) return value in try_rich_to_3way_compare().
Also document do_cmp()'s return values.




Index: object.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/object.c,v
retrieving revision 2.124.2.3
retrieving revision 2.124.2.4
diff -C2 -r2.124.2.3 -r2.124.2.4
*** object.c	2001/05/23 13:03:13	2.124.2.3
--- object.c	2001/05/23 13:18:30	2.124.2.4
***************
*** 448,452 ****
  		switch (try_rich_compare_bool(v, w, tries[i].op)) {
  		case -1:
! 			return -1;
  		case 1:
  			return tries[i].outcome;
--- 448,452 ----
  		switch (try_rich_compare_bool(v, w, tries[i].op)) {
  		case -1:
! 			return -2;
  		case 1:
  			return tries[i].outcome;
***************
*** 586,589 ****
--- 586,595 ----
  #define CHECK_TYPES(o) PyType_HasFeature((o)->ob_type, Py_TPFLAGS_CHECKTYPES)
  
+ /* Do a 3-way comparison, by hook or by crook.  Return:
+    -2 for an exception;
+    -1 if v < w;
+     0 if v == w;
+     1 if v > w;
+ */
  static int
  do_cmp(PyObject *v, PyObject *w)