summaryrefslogtreecommitdiffstats
path: root/Python/codecs.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/codecs.c')
-rw-r--r--Python/codecs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Python/codecs.c b/Python/codecs.c
index bed2453..9c0a3fa 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -147,7 +147,9 @@ PyObject *_PyCodec_Lookup(const char *encoding)
if (v == NULL) {
return NULL;
}
- PyUnicode_InternInPlace(&v);
+
+ /* Intern the string. We'll make it immortal later if lookup succeeds. */
+ _PyUnicode_InternMortal(interp, &v);
/* First, try to lookup the name in the registry dictionary */
PyObject *result;
@@ -200,6 +202,8 @@ PyObject *_PyCodec_Lookup(const char *encoding)
goto onError;
}
+ _PyUnicode_InternImmortal(interp, &v);
+
/* Cache and return the result */
if (PyDict_SetItem(interp->codecs.search_cache, v, result) < 0) {
Py_DECREF(result);