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:
Gustavo Niemeyer 2003-03-19 00:35:36 +00:00
parent 821a0fc140
commit 5ddd4c3f77
5 changed files with 80 additions and 92 deletions

View file

@ -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;