summaryrefslogtreecommitdiffstats
path: root/Objects/unicodeobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r--Objects/unicodeobject.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 2e1f8a6..4cea0d8 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -15567,23 +15567,19 @@ _PyUnicode_InitTypes(PyInterpreterState *interp)
return _PyStatus_OK();
}
- if (PyType_Ready(&PyUnicode_Type) < 0) {
- return _PyStatus_ERR("Can't initialize unicode type");
- }
- if (PyType_Ready(&PyUnicodeIter_Type) < 0) {
- return _PyStatus_ERR("Can't initialize unicode iterator type");
- }
-
if (PyType_Ready(&EncodingMapType) < 0) {
- return _PyStatus_ERR("Can't initialize encoding map type");
+ goto error;
}
if (PyType_Ready(&PyFieldNameIter_Type) < 0) {
- return _PyStatus_ERR("Can't initialize field name iterator type");
+ goto error;
}
if (PyType_Ready(&PyFormatterIter_Type) < 0) {
- return _PyStatus_ERR("Can't initialize formatter iter type");
+ goto error;
}
return _PyStatus_OK();
+
+error:
+ return _PyStatus_ERR("Can't initialize unicode types");
}
@@ -16112,6 +16108,19 @@ unicode_is_finalizing(void)
void
+_PyUnicode_FiniTypes(PyInterpreterState *interp)
+{
+ if (!_Py_IsMainInterpreter(interp)) {
+ return;
+ }
+
+ _PyStaticType_Dealloc(&EncodingMapType);
+ _PyStaticType_Dealloc(&PyFieldNameIter_Type);
+ _PyStaticType_Dealloc(&PyFormatterIter_Type);
+}
+
+
+void
_PyUnicode_Fini(PyInterpreterState *interp)
{
struct _Py_unicode_state *state = &interp->unicode;