mirror of
https://github.com/python/cpython.git
synced 2025-09-02 06:57:58 +00:00
Fixed SF bug #663074. The codec system was using global static
variables to store internal data. As a result, any atempts to use the unicode system with multiple active interpreters, or successive interpreter executions, would fail. Now that information is stored into members of the PyInterpreterState structure.
This commit is contained in:
parent
821a0fc140
commit
5ddd4c3f77
5 changed files with 80 additions and 92 deletions
|
@ -49,8 +49,6 @@ static void call_sys_exitfunc(void);
|
|||
static void call_ll_exitfuncs(void);
|
||||
extern void _PyUnicode_Init(void);
|
||||
extern void _PyUnicode_Fini(void);
|
||||
extern void _PyCodecRegistry_Init(void);
|
||||
extern void _PyCodecRegistry_Fini(void);
|
||||
|
||||
int Py_DebugFlag; /* Needed by parser.c */
|
||||
int Py_VerboseFlag; /* Needed by import.c */
|
||||
|
@ -144,9 +142,6 @@ Py_Initialize(void)
|
|||
if (interp->modules == NULL)
|
||||
Py_FatalError("Py_Initialize: can't make modules dictionary");
|
||||
|
||||
/* Init codec registry */
|
||||
_PyCodecRegistry_Init();
|
||||
|
||||
#ifdef Py_USING_UNICODE
|
||||
/* Init Unicode implementation; relies on the codec registry */
|
||||
_PyUnicode_Init();
|
||||
|
@ -257,9 +252,6 @@ Py_Finalize(void)
|
|||
/* Disable signal handling */
|
||||
PyOS_FiniInterrupts();
|
||||
|
||||
/* Cleanup Codec registry */
|
||||
_PyCodecRegistry_Fini();
|
||||
|
||||
/* drop module references we saved */
|
||||
Py_XDECREF(PyModule_WarningsModule);
|
||||
PyModule_WarningsModule = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue