Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 12754:5213abfe5230 legacy-trunk
Py_Initialize(): Now that standard exceptions are builtin, we don't
need two phase init or fini of the builtin module. Change the call of
_PyBuiltin_Init_1() to _PyBuiltin_Init(). Add a call to
init_exceptions().
Py_Finalize(): Don't call _PyBuiltin_Fini_1(). Instead call
fini_exceptions() but move this to before the thread state is
cleared.
| author | Barry Warsaw <barry@python.org> |
|---|---|
| date | Thu, 25 May 2000 23:09:49 +0000 |
| parents | 1c7c2dd1beb1 |
| children | 63436719d12e |
line wrap: on
line diff
--- a/Python/pythonrun.c Thu May 25 23:05:36 2000 +0000 +++ b/Python/pythonrun.c Thu May 25 23:09:49 2000 +0000 @@ -152,7 +152,7 @@ _PyCompareState_Key = PyString_InternFromString("cmp_state"); - bimod = _PyBuiltin_Init_1(); + bimod = _PyBuiltin_Init(); if (bimod == NULL) Py_FatalError("Py_Initialize: can't initialize __builtin__"); interp->builtins = PyModule_GetDict(bimod); @@ -170,8 +170,10 @@ _PyImport_Init(); + /* initialize builtin exceptions */ + init_exceptions(); + /* phase 2 of builtins */ - _PyBuiltin_Init_2(interp->builtins); _PyImport_FixupExtension("__builtin__", "__builtin__"); initsigs(); /* Signal handling stuff, including initintr() */ @@ -218,9 +220,6 @@ /* Disable signal handling */ PyOS_FiniInterrupts(); - /* Destroy PyExc_MemoryErrorInst */ - _PyBuiltin_Fini_1(); - /* Cleanup Unicode implementation */ _PyUnicode_Fini(); @@ -252,17 +251,18 @@ } #endif /* Py_TRACE_REFS */ + /* Now we decref the exception classes. After this point nothing + can raise an exception. That's okay, because each Fini() method + below has been checked to make sure no exceptions are ever + raised. + */ + fini_exceptions(); + /* Delete current thread */ PyInterpreterState_Clear(interp); PyThreadState_Swap(NULL); PyInterpreterState_Delete(interp); - /* Now we decref the exception classes. After this point nothing - can raise an exception. That's okay, because each Fini() method - below has been checked to make sure no exceptions are ever - raised. - */ - _PyBuiltin_Fini_2(); PyMethod_Fini(); PyFrame_Fini(); PyCFunction_Fini();
