1616#include "pycore_pyerrors.h"
1717#include "pycore_pylifecycle.h"
1818#include "pycore_pystate.h"
19+ #include "pycore_sysmodule.h"
1920#include "grammar.h"
2021#include "node.h"
2122#include "token.h"
@@ -696,8 +697,8 @@ _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
696697 }
697698 }
698699 hook = _PySys_GetObjectId (& PyId_excepthook );
699- if (PySys_Audit ( "sys.excepthook" , "OOOO" , hook ? hook : Py_None ,
700- exception , v , tb ) < 0 ) {
700+ if (_PySys_Audit ( tstate , "sys.excepthook" , "OOOO" , hook ? hook : Py_None ,
701+ exception , v , tb ) < 0 ) {
701702 if (PyErr_ExceptionMatches (PyExc_RuntimeError )) {
702703 PyErr_Clear ();
703704 goto done ;
@@ -1100,7 +1101,7 @@ flush_io(void)
11001101}
11011102
11021103static PyObject *
1103- run_eval_code_obj (PyCodeObject * co , PyObject * globals , PyObject * locals )
1104+ run_eval_code_obj (PyThreadState * tstate , PyCodeObject * co , PyObject * globals , PyObject * locals )
11041105{
11051106 PyObject * v ;
11061107 /*
@@ -1117,14 +1118,14 @@ run_eval_code_obj(PyCodeObject *co, PyObject *globals, PyObject *locals)
11171118
11181119 /* Set globals['__builtins__'] if it doesn't exist */
11191120 if (globals != NULL && PyDict_GetItemString (globals , "__builtins__" ) == NULL ) {
1120- PyInterpreterState * interp = _PyInterpreterState_GET_UNSAFE ();
1121- if ( PyDict_SetItemString ( globals , "__builtins__" , interp -> builtins ) < 0 ) {
1121+ if ( PyDict_SetItemString ( globals , "__builtins__" ,
1122+ tstate -> interp -> builtins ) < 0 ) {
11221123 return NULL ;
11231124 }
11241125 }
11251126
11261127 v = PyEval_EvalCode ((PyObject * )co , globals , locals );
1127- if (!v && PyErr_Occurred ( ) == PyExc_KeyboardInterrupt ) {
1128+ if (!v && _PyErr_Occurred ( tstate ) == PyExc_KeyboardInterrupt ) {
11281129 _Py_UnhandledKeyboardInterrupt = 1 ;
11291130 }
11301131 return v ;
@@ -1134,18 +1135,17 @@ static PyObject *
11341135run_mod (mod_ty mod , PyObject * filename , PyObject * globals , PyObject * locals ,
11351136 PyCompilerFlags * flags , PyArena * arena )
11361137{
1137- PyCodeObject * co ;
1138- PyObject * v ;
1139- co = PyAST_CompileObject (mod , filename , flags , -1 , arena );
1138+ PyThreadState * tstate = _PyThreadState_GET ();
1139+ PyCodeObject * co = PyAST_CompileObject (mod , filename , flags , -1 , arena );
11401140 if (co == NULL )
11411141 return NULL ;
11421142
1143- if (PySys_Audit ( "exec" , "O" , co ) < 0 ) {
1143+ if (_PySys_Audit ( tstate , "exec" , "O" , co ) < 0 ) {
11441144 Py_DECREF (co );
11451145 return NULL ;
11461146 }
11471147
1148- v = run_eval_code_obj (co , globals , locals );
1148+ PyObject * v = run_eval_code_obj (tstate , co , globals , locals );
11491149 Py_DECREF (co );
11501150 return v ;
11511151}
@@ -1154,6 +1154,7 @@ static PyObject *
11541154run_pyc_file (FILE * fp , const char * filename , PyObject * globals ,
11551155 PyObject * locals , PyCompilerFlags * flags )
11561156{
1157+ PyThreadState * tstate = _PyThreadState_GET ();
11571158 PyCodeObject * co ;
11581159 PyObject * v ;
11591160 long magic ;
@@ -1182,7 +1183,7 @@ run_pyc_file(FILE *fp, const char *filename, PyObject *globals,
11821183 }
11831184 fclose (fp );
11841185 co = (PyCodeObject * )v ;
1185- v = run_eval_code_obj (co , globals , locals );
1186+ v = run_eval_code_obj (tstate , co , globals , locals );
11861187 if (v && flags )
11871188 flags -> cf_flags |= (co -> co_flags & PyCF_MASK );
11881189 Py_DECREF (co );
0 commit comments