]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Remove PyRange_New().
authorRaymond Hettinger <python@rcn.com>
Fri, 3 Dec 2004 11:45:13 +0000 (11:45 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 3 Dec 2004 11:45:13 +0000 (11:45 +0000)
Include/rangeobject.h
Misc/NEWS
Objects/rangeobject.c

index 50aa0619e1a285960c3ebe5a7fc8f6932c3fb0be..359bcb69f5bcf6cb7a6dcb4121876962db804f1a 100644 (file)
@@ -22,8 +22,6 @@ PyAPI_DATA(PyTypeObject) PyRange_Type;
 
 #define PyRange_Check(op) ((op)->ob_type == &PyRange_Type)
 
-PyAPI_FUNC(PyObject *) PyRange_New(long, long, long, int);
-
 #ifdef __cplusplus
 }
 #endif
index a1dfa457ceeb9c2ac33850185e796f176201d7ee..32da2f76c74a77b2513f6cda911b41054400d2b2 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -32,6 +32,8 @@ Build
 C API
 -----
 
+- Removed PyRange_New().
+
 
 Tests
 -----
index dabb8d4ae3de54e0ce1073b99e062dcf1a3d8953..2f5d164d9a815e72d251f95a808bdb48f95e5445 100644 (file)
@@ -9,51 +9,6 @@ typedef struct {
        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.