mirror of
https://github.com/python/cpython.git
synced 2025-10-06 23:21:06 +00:00
gh-108634: PyInterpreterState_New() no longer calls Py_FatalError() (#108748)
pycore_create_interpreter() now returns a status, rather than calling Py_FatalError(). * PyInterpreterState_New() now calls Py_ExitStatusException() instead of calling Py_FatalError() directly. * Replace Py_FatalError() with PyStatus in init_interpreter() and _PyObject_InitState(). * _PyErr_SetFromPyStatus() now raises RuntimeError, instead of ValueError. It can now call PyErr_NoMemory(), raise MemoryError, if it detects _PyStatus_NO_MEMORY() error message.
This commit is contained in:
parent
844f4c2e12
commit
b936cf4fe0
7 changed files with 101 additions and 53 deletions
|
@ -2034,7 +2034,7 @@ PyObject _Py_NotImplementedStruct = {
|
|||
};
|
||||
|
||||
|
||||
void
|
||||
PyStatus
|
||||
_PyObject_InitState(PyInterpreterState *interp)
|
||||
{
|
||||
#ifdef Py_TRACE_REFS
|
||||
|
@ -2048,9 +2048,10 @@ _PyObject_InitState(PyInterpreterState *interp)
|
|||
_Py_hashtable_hash_ptr, _Py_hashtable_compare_direct,
|
||||
NULL, NULL, &alloc);
|
||||
if (REFCHAIN(interp) == NULL) {
|
||||
Py_FatalError("_PyObject_InitState() memory allocation failure");
|
||||
return _PyStatus_NO_MEMORY();
|
||||
}
|
||||
#endif
|
||||
return _PyStatus_OK();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue