Add the dependency to tstate more explicit.
#include "pycore_pyerrors.h"
#include "pycore_pylifecycle.h"
#include "pycore_pystate.h"
+#include "pycore_sysmodule.h"
#include "pycore_tupleobject.h"
#include "code.h"
/* The caller must hold the GIL */
assert(PyGILState_Check());
- /* Call PySys_Audit() in the context of the current thread state,
+ /* Call _PySys_Audit() in the context of the current thread state,
even if tstate is not the current thread state. */
- if (PySys_Audit("sys.setprofile", NULL) < 0) {
+ PyThreadState *current_tstate = _PyThreadState_GET();
+ if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) {
return -1;
}
{
PyThreadState *tstate = _PyThreadState_GET();
if (_PyEval_SetProfile(tstate, func, arg) < 0) {
- /* Log PySys_Audit() error */
+ /* Log _PySys_Audit() error */
_PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL);
}
}
/* The caller must hold the GIL */
assert(PyGILState_Check());
- /* Call PySys_Audit() in the context of the current thread state,
+ /* Call _PySys_Audit() in the context of the current thread state,
even if tstate is not the current thread state. */
- if (PySys_Audit("sys.settrace", NULL) < 0) {
+ PyThreadState *current_tstate = _PyThreadState_GET();
+ if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) {
return -1;
}
{
PyThreadState *tstate = _PyThreadState_GET();
if (_PyEval_SetTrace(tstate, func, arg) < 0) {
- /* Log PySys_Audit() error */
+ /* Log _PySys_Audit() error */
_PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL);
}
}
{
PyThreadState *tstate = _PyThreadState_GET();
- if (PySys_Audit("sys.set_asyncgen_hook_firstiter", NULL) < 0) {
+ if (_PySys_Audit(tstate, "sys.set_asyncgen_hook_firstiter", NULL) < 0) {
return -1;
}
{
PyThreadState *tstate = _PyThreadState_GET();
- if (PySys_Audit("sys.set_asyncgen_hook_finalizer", NULL) < 0) {
+ if (_PySys_Audit(tstate, "sys.set_asyncgen_hook_finalizer", NULL) < 0) {
return -1;
}
#include "pycore_initconfig.h"
#include "pycore_pyerrors.h"
#include "pycore_pystate.h"
+#include "pycore_sysmodule.h"
#include "pycore_traceback.h"
#ifndef __STDC__
goto default_hook;
}
- if (PySys_Audit("sys.unraisablehook", "OO", hook, hook_args) < 0) {
+ if (_PySys_Audit(tstate, "sys.unraisablehook", "OO", hook, hook_args) < 0) {
Py_DECREF(hook_args);
err_msg_str = "Exception ignored in audit hook";
obj = NULL;
#include "pycore_pylifecycle.h"
#include "pycore_pymem.h"
#include "pycore_pystate.h"
+#include "pycore_sysmodule.h"
#include "errcode.h"
#include "marshal.h"
#include "code.h"
PyObject *sys_path = PySys_GetObject("path");
PyObject *sys_meta_path = PySys_GetObject("meta_path");
PyObject *sys_path_hooks = PySys_GetObject("path_hooks");
- if (PySys_Audit("import", "OOOOO",
- abs_name, Py_None, sys_path ? sys_path : Py_None,
- sys_meta_path ? sys_meta_path : Py_None,
- sys_path_hooks ? sys_path_hooks : Py_None) < 0) {
+ if (_PySys_Audit(tstate, "import", "OOOOO",
+ abs_name, Py_None, sys_path ? sys_path : Py_None,
+ sys_meta_path ? sys_meta_path : Py_None,
+ sys_path_hooks ? sys_path_hooks : Py_None) < 0) {
return NULL;
}
#include "pycore_pyerrors.h"
#include "pycore_pylifecycle.h"
#include "pycore_pystate.h"
+#include "pycore_sysmodule.h"
#include "grammar.h"
#include "node.h"
#include "token.h"
}
}
hook = _PySys_GetObjectId(&PyId_excepthook);
- if (PySys_Audit("sys.excepthook", "OOOO", hook ? hook : Py_None,
- exception, v, tb) < 0) {
+ if (_PySys_Audit(tstate, "sys.excepthook", "OOOO", hook ? hook : Py_None,
+ exception, v, tb) < 0) {
if (PyErr_ExceptionMatches(PyExc_RuntimeError)) {
PyErr_Clear();
goto done;
}
static PyObject *
-run_eval_code_obj(PyCodeObject *co, PyObject *globals, PyObject *locals)
+run_eval_code_obj(PyThreadState *tstate, PyCodeObject *co, PyObject *globals, PyObject *locals)
{
PyObject *v;
/*
/* Set globals['__builtins__'] if it doesn't exist */
if (globals != NULL && PyDict_GetItemString(globals, "__builtins__") == NULL) {
- PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
- if (PyDict_SetItemString(globals, "__builtins__", interp->builtins) < 0) {
+ if (PyDict_SetItemString(globals, "__builtins__",
+ tstate->interp->builtins) < 0) {
return NULL;
}
}
v = PyEval_EvalCode((PyObject*)co, globals, locals);
- if (!v && PyErr_Occurred() == PyExc_KeyboardInterrupt) {
+ if (!v && _PyErr_Occurred(tstate) == PyExc_KeyboardInterrupt) {
_Py_UnhandledKeyboardInterrupt = 1;
}
return v;
run_mod(mod_ty mod, PyObject *filename, PyObject *globals, PyObject *locals,
PyCompilerFlags *flags, PyArena *arena)
{
- PyCodeObject *co;
- PyObject *v;
- co = PyAST_CompileObject(mod, filename, flags, -1, arena);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyCodeObject *co = PyAST_CompileObject(mod, filename, flags, -1, arena);
if (co == NULL)
return NULL;
- if (PySys_Audit("exec", "O", co) < 0) {
+ if (_PySys_Audit(tstate, "exec", "O", co) < 0) {
Py_DECREF(co);
return NULL;
}
- v = run_eval_code_obj(co, globals, locals);
+ PyObject *v = run_eval_code_obj(tstate, co, globals, locals);
Py_DECREF(co);
return v;
}
run_pyc_file(FILE *fp, const char *filename, PyObject *globals,
PyObject *locals, PyCompilerFlags *flags)
{
+ PyThreadState *tstate = _PyThreadState_GET();
PyCodeObject *co;
PyObject *v;
long magic;
}
fclose(fp);
co = (PyCodeObject *)v;
- v = run_eval_code_obj(co, globals, locals);
+ v = run_eval_code_obj(tstate, co, globals, locals);
if (v && flags)
flags->cf_flags |= (co->co_flags & PyCF_MASK);
Py_DECREF(co);