PyInterpreterState *interp = _PyInterpreterState_Get();
PyObject *mod;
- unsigned i;
if (interp->codec_search_path != NULL)
return 0;
interp->codec_search_path = PyList_New(0);
+ if (interp->codec_search_path == NULL) {
+ return -1;
+ }
+
interp->codec_search_cache = PyDict_New();
+ if (interp->codec_search_cache == NULL) {
+ return -1;
+ }
+
interp->codec_error_registry = PyDict_New();
+ if (interp->codec_error_registry == NULL) {
+ return -1;
+ }
- if (interp->codec_error_registry) {
- for (i = 0; i < Py_ARRAY_LENGTH(methods); ++i) {
- PyObject *func = PyCFunction_NewEx(&methods[i].def, NULL, NULL);
- int res;
- if (!func)
- Py_FatalError("can't initialize codec error registry");
- res = PyCodec_RegisterError(methods[i].name, func);
- Py_DECREF(func);
- if (res)
- Py_FatalError("can't initialize codec error registry");
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(methods); ++i) {
+ PyObject *func = PyCFunction_NewEx(&methods[i].def, NULL, NULL);
+ if (!func) {
+ return -1;
}
- }
- if (interp->codec_search_path == NULL ||
- interp->codec_search_cache == NULL ||
- interp->codec_error_registry == NULL)
- Py_FatalError("can't initialize codec registry");
+ int res = PyCodec_RegisterError(methods[i].name, func);
+ Py_DECREF(func);
+ if (res) {
+ return -1;
+ }
+ }
mod = PyImport_ImportModuleNoBlock("encodings");
if (mod == NULL) {