summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2012-12-24 17:53:30 (GMT)
committerBenjamin Peterson <benjamin@python.org>2012-12-24 17:53:30 (GMT)
commit6f0c94df50f30aac8d9a1a9f85adcda1e63d0ab7 (patch)
tree980e5da9a561b91405f2d6824f6dae53a205e605 /Python/ceval.c
parent6a7a49c6318afe8a54fe6dda2dd321af2a275295 (diff)
downloadcpython-6f0c94df50f30aac8d9a1a9f85adcda1e63d0ab7.zip
cpython-6f0c94df50f30aac8d9a1a9f85adcda1e63d0ab7.tar.gz
cpython-6f0c94df50f30aac8d9a1a9f85adcda1e63d0ab7.tar.bz2
improve tracing performance when f_trace is NULL (closes #16672)
Patch by Xavier de Gaye.
Diffstat (limited to 'Python/ceval.c')
-rw-r--r--Python/ceval.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 32c203e..5f6f35c 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1277,7 +1277,8 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
/* line-by-line tracing support */
if (_Py_TracingPossible &&
- tstate->c_tracefunc != NULL && !tstate->tracing) {
+ tstate->c_tracefunc != NULL && !tstate->tracing &&
+ f->f_trace != NULL) {
int err;
/* see maybe_call_line_trace
for expository comments */
@@ -3008,7 +3009,7 @@ error:
/* Log traceback info. */
PyTraceBack_Here(f);
- if (tstate->c_tracefunc != NULL)
+ if (tstate->c_tracefunc != NULL && f->f_trace != NULL)
call_exc_trace(tstate->c_tracefunc, tstate->c_traceobj, f);
fast_block_end:
@@ -3127,7 +3128,7 @@ fast_yield:
}
if (tstate->use_tracing) {
- if (tstate->c_tracefunc) {
+ if (tstate->c_tracefunc && f->f_trace != NULL) {
if (why == WHY_RETURN || why == WHY_YIELD) {
if (call_trace(tstate->c_tracefunc,
tstate->c_traceobj, f,