• Fred Drake's avatar
    This change adjusts the profiling/tracing support so that the common · 9e3ad784
    Fred Drake yazdı
    path (with no profile/trace function) through eval_code2() and
    eval_frame() avoids several checks.
    
    In the common cases of calls, returns, and exception propogation,
    eval_code2() and eval_frame() used to test two values in the
    thread-state: the profiling function and the tracing function.  With
    this change, a flag is set in the thread-state if either of these is
    active, allowing a single check to suffice when both are NULL.  This
    also simplifies the code needed when either function is in use but is
    already active (to avoid profiling/tracing the profiler/tracer); the
    flag is set to 0 when the profile/trace code is entered, allowing the
    same check to suffice for "already in the tracer" for call/return/
    exception events.
    9e3ad784
pystate.c 5.34 KB