_Py_ReleaseInternedStrings(): Private API function to decref and

release the interned string dictionary.  This is useful for memory
use debugging because it eliminates a huge source of noise from the
reports.  Only defined when INTERN_STRINGS is defined.
This commit is contained in:
Barry Warsaw 2001-02-23 16:40:48 +00:00
parent 8d7f0869ee
commit a903ad9855
2 changed files with 12 additions and 0 deletions

View File

@ -65,9 +65,11 @@ extern DL_IMPORT(PyObject *) _PyString_FormatLong(PyObject*, int, int,
#ifdef INTERN_STRINGS
extern DL_IMPORT(void) PyString_InternInPlace(PyObject **);
extern DL_IMPORT(PyObject *) PyString_InternFromString(const char *);
extern DL_IMPORT(void) _Py_ReleaseInternedStrings(void);
#else
#define PyString_InternInPlace(p)
#define PyString_InternFromString(cp) PyString_FromString(cp)
#define _Py_ReleaseInternedStrings()
#endif
/* Macro, trading safety for speed */

View File

@ -3217,3 +3217,13 @@ PyString_Fini(void)
}
#endif
}
#ifdef INTERN_STRINGS
void _Py_ReleaseInternedStrings(void)
{
if (interned) {
Py_DECREF(interned);
interned = NULL;
}
}
#endif /* INTERN_STRINGS */