diff options
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r-- | Objects/unicodeobject.c | 29 |
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; |