Fix constantification of None.

This commit is contained in:
Raymond Hettinger 2007-03-02 19:19:05 +00:00
parent 8bc8ab5fec
commit d882e36f45
3 changed files with 17 additions and 5 deletions

View file

@ -773,13 +773,17 @@ optimize_code(PyObject *code, PyObject* consts, PyObject *names,
if (name == NULL || strcmp(name, "None") != 0)
continue;
for (j=0 ; j < PyList_GET_SIZE(consts) ; j++) {
if (PyList_GET_ITEM(consts, j) == Py_None) {
codestr[i] = LOAD_CONST;
SETARG(codestr, i, j);
cumlc = lastlc + 1;
if (PyList_GET_ITEM(consts, j) == Py_None)
break;
}
}
if (j == PyList_GET_SIZE(consts)) {
if (PyList_Append(consts, Py_None) == -1)
goto exitUnchanged;
}
assert(PyList_GET_ITEM(consts, j) == Py_None);
codestr[i] = LOAD_CONST;
SETARG(codestr, i, j);
cumlc = lastlc + 1;
break;
/* Skip over LOAD_CONST trueconst