From: Barry Warsaw Date: Wed, 16 Aug 2000 23:41:01 +0000 (+0000) Subject: Insure properly identifies the `interned' dictionary as leaking at X-Git-Tag: v2.0b1~413 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4df762ff98d2b7c21c2fcef922812844eb401650;p=thirdparty%2FPython%2Fcpython.git Insure properly identifies the `interned' dictionary as leaking at shutdown time, but CVS log entry for revision 2.45 explains why this is so. Simply include a comment so we don't have to re-figure it out again 5 years from now. --- diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 6d25ddb4e792..25621c2a5993 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -2850,6 +2850,18 @@ PyString_Format(PyObject *format, PyObject *args) #ifdef INTERN_STRINGS +/* This dictionary will leak at PyString_Fini() time. That's acceptable + * because PyString_Fini() specifically frees interned strings that are + * only referenced by this dictionary. The CVS log entry for revision 2.45 + * says: + * + * Change the Fini function to only remove otherwise unreferenced + * strings from the interned table. There are references in + * hard-to-find static variables all over the interpreter, and it's not + * worth trying to get rid of all those; but "uninterning" isn't fair + * either and may cause subtle failures later -- so we have to keep them + * in the interned table. + */ static PyObject *interned; void