Revert previous two checkins to repair test failure.

The special-case code that was removed could return a value indicating
success but leave an exception set.  test_fileinput failed in a debug
build as a result.
This commit is contained in:
Jeremy Hylton 2003-12-26 19:05:04 +00:00
parent 87c1afa057
commit 30973414c5
1 changed files with 6 additions and 24 deletions

View File

@ -2234,13 +2234,6 @@ list_richcompare(PyObject *v, PyObject *w, int op)
return PyObject_RichCompare(vl->ob_item[i], wl->ob_item[i], op); return PyObject_RichCompare(vl->ob_item[i], wl->ob_item[i], op);
} }
/* empirically determined threshold for activating an optimisation
* in list_fill() - 100 seems close to optimum for current CPUs and
* compilers, as of December '03.
* see also comment in list_fill().
*/
#define LISTFILL_OPT_THRESHOLD 100
/* Adapted from newer code by Tim */ /* Adapted from newer code by Tim */
static int static int
list_fill(PyListObject *result, PyObject *v) list_fill(PyListObject *result, PyObject *v)
@ -2255,23 +2248,12 @@ list_fill(PyListObject *result, PyObject *v)
n = result->ob_size; n = result->ob_size;
/* Special-case list(a_list), for speed: /* Special-case list(a_list), for speed. */
* - if the source has 0 elements, there's nothing to copy. if (PyList_Check(v)) {
* - if the source has more than a threshold number of elements if (v == (PyObject *)result)
* slice assignment is a faster way of filling the target return 0; /* source is destination, we're done */
* (the exact threshold is subject to empirical determination). return list_ass_slice(result, 0, n, v);
* Also special case any other zero length sequence, including }
* subclasses of list, there being nothing to copy.
*/
if (PyList_CheckExact(v)) {
i = PyList_GET_SIZE(v);
if (i == 0)
return 0;
if (i > LISTFILL_OPT_THRESHOLD)
return list_ass_slice(result, 0, n, v);
} else
if (PySequence_Check(v) && PySequence_Size(v) == 0)
return 0;
/* Empty previous contents */ /* Empty previous contents */
if (n != 0) { if (n != 0) {