Xavier, this is a misunderstanding; sorry for not being more clear. When I said "remove the `else`", I was proposing this:
+ if (tstate->inst_tracing) {
+ result = call_trace(func, obj, tstate, frame, PyTrace_INSTRUCTION, Py_None);
+ }
Line-oriented tracers/debuggers would not have set trace_instructions, so they would not receive any 'instruction' events, and should not suffer.
The motivation for this suggestion was that for tracers that *are* interested in instructions, it *might* be simpler to get two calls, one of 'line', and one of 'instruction'. Maybe it's a bad idea though.