From: Raymond Hettinger Date: Wed, 9 Feb 2005 21:24:51 +0000 (+0000) Subject: Have set conversion replace existing constant if not used elsewhere. X-Git-Tag: v2.5a0~2043 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5e547969f8e310b6090db0853186c2c03fd1023b;p=python Have set conversion replace existing constant if not used elsewhere. --- diff --git a/Python/compile.c b/Python/compile.c index dd58aa6428..f90f82c878 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -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);