Mercurial > cpython-lru_cache-weakref
diff Python/ceval.c @ 81015:1fb26db7d719
improve tracing performance when f_trace is NULL (closes #16672)
Patch by Xavier de Gaye.
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Mon, 24 Dec 2012 11:53:30 -0600 |
| parents | bb6fd6f021e7 |
| children | cd87afe18ff8 |
line wrap: on
line diff
--- a/Python/ceval.c Mon Dec 24 13:17:11 2012 +0200 +++ b/Python/ceval.c Mon Dec 24 11:53:30 2012 -0600 @@ -1277,7 +1277,8 @@ /* 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 @@ /* 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 @@ } 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,
