Have set conversion replace existing constant if not used elsewhere.

This commit is contained in:
Raymond Hettinger 2005-02-09 21:24:51 +00:00
parent 4d81ac9ca8
commit 5e547969f8

View file

@ -570,7 +570,13 @@ try_set_conversion(unsigned char *codestr, PyObject *consts)
return 0;
}
/* Append new constant onto consts list.*/
/* Append new constant onto consts list or replace existing constant
if there are no other references to it.*/
if (constant->ob_refcnt == 1) {
PyList_SET_ITEM(consts, arg, newconst);
Py_DECREF(constant);
return 1;
}
len_consts = PyList_GET_SIZE(consts);
if (PyList_Append(consts, newconst)) {
Py_DECREF(newconst);