]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Insure properly identifies the `interned' dictionary as leaking at
authorBarry Warsaw <barry@python.org>
Wed, 16 Aug 2000 23:41:01 +0000 (23:41 +0000)
committerBarry Warsaw <barry@python.org>
Wed, 16 Aug 2000 23:41:01 +0000 (23:41 +0000)
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.

Objects/stringobject.c

index 6d25ddb4e792eb6503ace6e01b1879da58081421..25621c2a599318edda665122571098b954859ad0 100644 (file)
@@ -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