summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/bootstrap_hash.c1
-rw-r--r--Python/coreconfig.c28
-rw-r--r--Python/frozenmain.c4
3 files changed, 31 insertions, 2 deletions
diff --git a/Python/bootstrap_hash.c b/Python/bootstrap_hash.c
index dd752b8609..fe71cc388a 100644
--- a/Python/bootstrap_hash.c
+++ b/Python/bootstrap_hash.c
@@ -1,4 +1,5 @@
#include "Python.h"
+#include "pycore_coreconfig.h"
#ifdef MS_WINDOWS
# include <windows.h>
/* All sample MSDN wincrypt programs include the header below. It is at least
diff --git a/Python/coreconfig.c b/Python/coreconfig.c
index 2e8f4cf6f1..3c17e3536d 100644
--- a/Python/coreconfig.c
+++ b/Python/coreconfig.c
@@ -203,6 +203,34 @@ fail:
}
+/* --- _PyInitError ----------------------------------------------- */
+
+_PyInitError _PyInitError_Ok(void)
+{ return _Py_INIT_OK(); }
+
+_PyInitError _PyInitError_Error(const char *err_msg)
+{
+ return (_PyInitError){._type = _Py_INIT_ERR_TYPE_ERROR,
+ .err_msg = err_msg};
+}
+
+_PyInitError _PyInitError_NoMemory(void)
+{ return _PyInitError_Error("memory allocation failed"); }
+
+_PyInitError _PyInitError_Exit(int exitcode)
+{ return _Py_INIT_EXIT(exitcode); }
+
+
+int _PyInitError_IsError(_PyInitError err)
+{ return _Py_INIT_IS_ERROR(err); }
+
+int _PyInitError_IsExit(_PyInitError err)
+{ return _Py_INIT_IS_EXIT(err); }
+
+int _PyInitError_Failed(_PyInitError err)
+{ return _Py_INIT_FAILED(err); }
+
+
/* --- _PyWstrList ------------------------------------------------ */
#ifndef NDEBUG
diff --git a/Python/frozenmain.c b/Python/frozenmain.c
index 0175e42596..7b232bb802 100644
--- a/Python/frozenmain.c
+++ b/Python/frozenmain.c
@@ -17,7 +17,7 @@ int
Py_FrozenMain(int argc, char **argv)
{
_PyInitError err = _PyRuntime_Initialize();
- if (_Py_INIT_FAILED(err)) {
+ if (_PyInitError_Failed(err)) {
_Py_ExitInitError(err);
}
@@ -84,7 +84,7 @@ Py_FrozenMain(int argc, char **argv)
err = _Py_InitializeFromConfig(&config);
/* No need to call _PyCoreConfig_Clear() since we didn't allocate any
memory: program_name is a constant string. */
- if (_Py_INIT_FAILED(err)) {
+ if (_PyInitError_Failed(err)) {
_Py_ExitInitError(err);
}