[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