[Python-checkins] python/dist/src/Python ceval.c,2.385,2.386
arigo at users.sourceforge.net
arigo at users.sourceforge.net
Mon Mar 22 14:25:01 EST 2004
Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1426/Python
Modified Files:
ceval.c
Log Message:
Fix SF bug #765624.
Index: ceval.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/ceval.c,v
retrieving revision 2.385
retrieving revision 2.386
diff -C2 -d -r2.385 -r2.386
*** ceval.c 20 Mar 2004 21:50:13 -0000 2.385
--- ceval.c 22 Mar 2004 19:24:58 -0000 2.386
***************
*** 49,53 ****
static void call_exc_trace(Py_tracefunc, PyObject *, PyFrameObject *);
static int maybe_call_line_trace(Py_tracefunc, PyObject *,
! PyFrameObject *, int *, int *);
static PyObject *apply_slice(PyObject *, PyObject *, PyObject *);
--- 49,53 ----
static void call_exc_trace(Py_tracefunc, PyObject *, PyFrameObject *);
static int maybe_call_line_trace(Py_tracefunc, PyObject *,
! PyFrameObject *, int *, int *, int *);
static PyObject *apply_slice(PyObject *, PyObject *, PyObject *);
***************
*** 603,607 ****
initial values are such as to make this false the first
time it is tested. */
! int instr_ub = -1, instr_lb = 0;
unsigned char *first_instr;
--- 603,607 ----
initial values are such as to make this false the first
time it is tested. */
! int instr_ub = -1, instr_lb = 0, instr_prev = -1;
unsigned char *first_instr;
***************
*** 847,851 ****
err = maybe_call_line_trace(tstate->c_tracefunc,
tstate->c_traceobj,
! f, &instr_lb, &instr_ub);
/* Reload possibly changed frame fields */
JUMPTO(f->f_lasti);
--- 847,852 ----
err = maybe_call_line_trace(tstate->c_tracefunc,
tstate->c_traceobj,
! f, &instr_lb, &instr_ub,
! &instr_prev);
/* Reload possibly changed frame fields */
JUMPTO(f->f_lasti);
***************
*** 3086,3090 ****
static int
maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
! PyFrameObject *frame, int *instr_lb, int *instr_ub)
{
/* The theory of SET_LINENO-less tracing.
--- 3087,3092 ----
static int
maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
! PyFrameObject *frame, int *instr_lb, int *instr_ub,
! int *instr_prev)
{
/* The theory of SET_LINENO-less tracing.
***************
*** 3210,3214 ****
}
}
!
return result;
}
--- 3212,3221 ----
}
}
! else if (frame->f_lasti <= *instr_prev) {
! /* jumping back in the same line forces a trace event */
! result = call_trace(func, obj, frame,
! PyTrace_LINE, Py_None);
! }
! *instr_prev = frame->f_lasti;
return result;
}
More information about the Python-checkins
mailing list