[Python-checkins] python/dist/src/Objects rangeobject.c,2.53,2.54

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Fri Dec 3 12:45:15 CET 2004


Update of /cvsroot/python/python/dist/src/Objects
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23290/Objects

Modified Files:
	rangeobject.c 
Log Message:
Remove PyRange_New().

Index: rangeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/rangeobject.c,v
retrieving revision 2.53
retrieving revision 2.54
diff -u -d -r2.53 -r2.54
--- rangeobject.c	8 Aug 2004 07:17:39 -0000	2.53
+++ rangeobject.c	3 Dec 2004 11:45:13 -0000	2.54
@@ -9,51 +9,6 @@
 	long	len;
 } rangeobject;
 
-/* XXX PyRange_New should be deprecated.  It's not documented.  It's not
- * used in the core.  Its error-checking is akin to Swiss cheese:  accepts
- * step == 0; accepts len < 0; ignores that (len - 1) * step may overflow;
- * raises a baffling "integer addition" exception if it thinks the last
- * item is "too big"; and doesn't compute whether "last item is too big"
- * correctly even if the multiplication doesn't overflow.
- */
-PyObject *
-PyRange_New(long start, long len, long step, int reps)
-{
-	rangeobject *obj;
-
-	if (reps != 1) {
-		PyErr_SetString(PyExc_ValueError,
-			"PyRange_New's 'repetitions' argument must be 1");
-		return NULL;
-	}
-
-	obj = PyObject_New(rangeobject, &PyRange_Type);
-	if (obj == NULL)
-		return NULL;
-
-	if (len == 0) {
-		start = 0;
-		len = 0;
-		step = 1;
-	}
-	else {
-		long last = start + (len - 1) * step;
-		if ((step > 0) ?
-		    (last > (PyInt_GetMax() - step)) :
-		    (last < (-1 - PyInt_GetMax() - step))) {
-			PyErr_SetString(PyExc_OverflowError,
-					"integer addition");
-			Py_DECREF(obj);
-			return NULL;
-		}
-	}
-	obj->start = start;
-	obj->len   = len;
-	obj->step  = step;
-
-	return (PyObject *) obj;
-}
-
 /* Return number of items in range/xrange (lo, hi, step).  step > 0
  * required.  Return a value < 0 if & only if the true value is too
  * large to fit in a signed long.



More information about the Python-checkins mailing list