comparison Modules/python.c @ 84861:47c6aa17fd90

Issue #15893: Improve error handling in main() and Py_FrozenMain() * handle _PyMem_RawStrdup() failure * Py_FrozenMain() releases memory on error * Py_FrozenMain() duplicates the old locale, as done in main()
author Victor Stinner <victor.stinner@gmail.com>
date Sat, 27 Jul 2013 02:39:09 +0200
parents 386ab2c12301
children
comparison
equal deleted inserted replaced
84860:0001c4100823 84861:47c6aa17fd90
43 m = fpgetmask(); 43 m = fpgetmask();
44 fpsetmask(m & ~FP_X_OFL); 44 fpsetmask(m & ~FP_X_OFL);
45 #endif 45 #endif
46 46
47 oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); 47 oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL));
48 if (!oldloc) {
49 fprintf(stderr, "out of memory\n");
50 return 1;
51 }
52
48 setlocale(LC_ALL, ""); 53 setlocale(LC_ALL, "");
49 for (i = 0; i < argc; i++) { 54 for (i = 0; i < argc; i++) {
50 argv_copy[i] = _Py_char2wchar(argv[i], NULL); 55 argv_copy[i] = _Py_char2wchar(argv[i], NULL);
51 if (!argv_copy[i]) { 56 if (!argv_copy[i]) {
52 PyMem_RawFree(oldloc); 57 PyMem_RawFree(oldloc);