summaryrefslogtreecommitdiffstats
path: root/Objects/frameobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/frameobject.c')
-rw-r--r--Objects/frameobject.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index 170c117..3b72651 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -127,10 +127,13 @@ frame_settrace_opcodes(PyFrameObject *f, PyObject* value, void *Py_UNUSED(ignore
}
if (value == Py_True) {
f->f_trace_opcodes = 1;
- _PyInterpreterState_GET()->f_opcode_trace_set = true;
+ if (f->f_trace) {
+ return _PyEval_SetOpcodeTrace(f, true);
+ }
}
else {
f->f_trace_opcodes = 0;
+ return _PyEval_SetOpcodeTrace(f, false);
}
return 0;
}
@@ -842,6 +845,9 @@ frame_settrace(PyFrameObject *f, PyObject* v, void *closure)
}
if (v != f->f_trace) {
Py_XSETREF(f->f_trace, Py_XNewRef(v));
+ if (v != NULL && f->f_trace_opcodes) {
+ return _PyEval_SetOpcodeTrace(f, true);
+ }
}
return 0;
}