[Python-checkins] CVS: python/dist/src/Python ceval.c,2.178,2.179
Guido van Rossum
python-dev@python.org
Mon, 8 May 2000 10:06:53 -0400 (EDT)
Update of /projects/cvsroot/python/dist/src/Python
In directory eric:/projects/python/develop/guido/src/Python
Modified Files:
ceval.c
Log Message:
Trent Mick:
Change static slice_index() to extern _PyEval_SliceIndex() (with
different return value interpretation: 0 for failure, 1 for success).
Index: ceval.c
===================================================================
RCS file: /projects/cvsroot/python/dist/src/Python/ceval.c,v
retrieving revision 2.178
retrieving revision 2.179
diff -C2 -r2.178 -r2.179
*** ceval.c 2000/05/04 00:55:17 2.178
--- ceval.c 2000/05/08 14:06:50 2.179
***************
*** 81,85 ****
static PyObject *call_function Py_PROTO((PyObject *, PyObject *, PyObject *));
static PyObject *loop_subscript Py_PROTO((PyObject *, PyObject *));
- static int slice_index Py_PROTO((PyObject *, int *));
static PyObject *apply_slice Py_PROTO((PyObject *, PyObject *, PyObject *));
static int assign_slice Py_PROTO((PyObject *, PyObject *,
--- 81,84 ----
***************
*** 2588,2593 ****
}
! static int
! slice_index(v, pi)
PyObject *v;
int *pi;
--- 2587,2596 ----
}
! /* Extract a slice index from a PyInt or PyLong, the index is bound to
! the range [-INT_MAX+1, INTMAX]. Returns 0 and an exception if there is
! and error. Returns 1 on success.*/
!
! int
! _PyEval_SliceIndex(v, pi)
PyObject *v;
int *pi;
***************
*** 2605,2609 ****
/* It's not an overflow error, so just
signal an error */
! return -1;
}
--- 2608,2612 ----
/* It's not an overflow error, so just
signal an error */
! return 0;
}
***************
*** 2615,2619 ****
/* Create a long integer with a value of 0 */
long_zero = PyLong_FromLong( 0L );
! if (long_zero == NULL) return -1;
/* Check sign */
--- 2618,2622 ----
/* Create a long integer with a value of 0 */
long_zero = PyLong_FromLong( 0L );
! if (long_zero == NULL) return 0;
/* Check sign */
***************
*** 2631,2635 ****
PyErr_SetString(PyExc_TypeError,
"slice index must be int");
! return -1;
}
/* Truncate -- very long indices are truncated anyway */
--- 2634,2638 ----
PyErr_SetString(PyExc_TypeError,
"slice index must be int");
! return 0;
}
/* Truncate -- very long indices are truncated anyway */
***************
*** 2640,2644 ****
*pi = x;
}
! return 0;
}
--- 2643,2647 ----
*pi = x;
}
! return 1;
}
***************
*** 2648,2654 ****
{
int ilow = 0, ihigh = INT_MAX;
! if (slice_index(v, &ilow) != 0)
return NULL;
! if (slice_index(w, &ihigh) != 0)
return NULL;
return PySequence_GetSlice(u, ilow, ihigh);
--- 2651,2657 ----
{
int ilow = 0, ihigh = INT_MAX;
! if (!_PyEval_SliceIndex(v, &ilow))
return NULL;
! if (!_PyEval_SliceIndex(w, &ihigh))
return NULL;
return PySequence_GetSlice(u, ilow, ihigh);
***************
*** 2660,2666 ****
{
int ilow = 0, ihigh = INT_MAX;
! if (slice_index(v, &ilow) != 0)
return -1;
! if (slice_index(w, &ihigh) != 0)
return -1;
if (x == NULL)
--- 2663,2669 ----
{
int ilow = 0, ihigh = INT_MAX;
! if (!_PyEval_SliceIndex(v, &ilow))
return -1;
! if (!_PyEval_SliceIndex(w, &ihigh))
return -1;
if (x == NULL)