summaryrefslogtreecommitdiffstats
path: root/Python/frozenmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/frozenmain.c')
-rw-r--r--Python/frozenmain.c74
1 files changed, 7 insertions, 67 deletions
diff --git a/Python/frozenmain.c b/Python/frozenmain.c
index 7f9cc19..e742172 100644
--- a/Python/frozenmain.c
+++ b/Python/frozenmain.c
@@ -2,8 +2,6 @@
/* Python interpreter main program for frozen scripts */
#include "Python.h"
-#include "pycore_pystate.h"
-#include <locale.h>
#ifdef MS_WINDOWS
extern void PyWinFreeze_ExeInit(void);
@@ -16,32 +14,12 @@ extern int PyInitFrozenExtensions(void);
int
Py_FrozenMain(int argc, char **argv)
{
- PyStatus status = _PyRuntime_Initialize();
- if (PyStatus_Exception(status)) {
- Py_ExitStatusException(status);
- }
-
- const char *p;
- int i, n, sts = 1;
+ char *p;
+ int n, sts;
int inspect = 0;
int unbuffered = 0;
- char *oldloc = NULL;
- wchar_t **argv_copy = NULL;
- /* We need a second copies, as Python might modify the first one. */
- wchar_t **argv_copy2 = NULL;
-
- if (argc > 0) {
- argv_copy = PyMem_RawMalloc(sizeof(wchar_t*) * argc);
- argv_copy2 = PyMem_RawMalloc(sizeof(wchar_t*) * argc);
- if (!argv_copy || !argv_copy2) {
- fprintf(stderr, "out of memory\n");
- goto error;
- }
- }
- PyConfig config;
- PyConfig_InitPythonConfig(&config);
- config.pathconfig_warnings = 0; /* Suppress errors from getpath.c */
+ Py_FrozenFlag = 1; /* Suppress errors from getpath.c */
if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
inspect = 1;
@@ -54,39 +32,12 @@ Py_FrozenMain(int argc, char **argv)
setbuf(stderr, (char *)NULL);
}
- oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL));
- if (!oldloc) {
- fprintf(stderr, "out of memory\n");
- goto error;
- }
-
- setlocale(LC_ALL, "");
- for (i = 0; i < argc; i++) {
- argv_copy[i] = Py_DecodeLocale(argv[i], NULL);
- argv_copy2[i] = argv_copy[i];
- if (!argv_copy[i]) {
- fprintf(stderr, "Unable to decode the command line argument #%i\n",
- i + 1);
- argc = i;
- goto error;
- }
- }
- setlocale(LC_ALL, oldloc);
- PyMem_RawFree(oldloc);
- oldloc = NULL;
-
#ifdef MS_WINDOWS
PyInitFrozenExtensions();
#endif /* MS_WINDOWS */
if (argc >= 1)
- Py_SetProgramName(argv_copy[0]);
-
- status = Py_InitializeFromConfig(&config);
- PyConfig_Clear(&config);
- if (PyStatus_Exception(status)) {
- Py_ExitStatusException(status);
- }
-
+ Py_SetProgramName(argv[0]);
+ Py_Initialize();
#ifdef MS_WINDOWS
PyWinFreeze_ExeInit();
#endif
@@ -95,7 +46,7 @@ Py_FrozenMain(int argc, char **argv)
fprintf(stderr, "Python %s\n%s\n",
Py_GetVersion(), Py_GetCopyright());
- PySys_SetArgv(argc, argv_copy);
+ PySys_SetArgv(argc, argv);
n = PyImport_ImportFrozenModule("__main__");
if (n == 0)
@@ -113,17 +64,6 @@ Py_FrozenMain(int argc, char **argv)
#ifdef MS_WINDOWS
PyWinFreeze_ExeTerm();
#endif
- if (Py_FinalizeEx() < 0) {
- sts = 120;
- }
-
-error:
- PyMem_RawFree(argv_copy);
- if (argv_copy2) {
- for (i = 0; i < argc; i++)
- PyMem_RawFree(argv_copy2[i]);
- PyMem_RawFree(argv_copy2);
- }
- PyMem_RawFree(oldloc);
+ Py_Finalize();
return sts;
}