Commit de5f05f3 authored by Armin Rigo's avatar Armin Rigo

Nobody on python-dev seemed particularly bothered that Hotshot generates half-

meaningless numbers, but I figured out I would fix that bug anyway.
parent 28b32ac6
...@@ -843,38 +843,6 @@ get_tdelta(ProfilerObject *self) ...@@ -843,38 +843,6 @@ get_tdelta(ProfilerObject *self)
/* The workhorse: the profiler callback function. */ /* The workhorse: the profiler callback function. */
static int
profiler_callback(ProfilerObject *self, PyFrameObject *frame, int what,
PyObject *arg)
{
int tdelta = -1;
int fileno;
if (self->frametimings)
tdelta = get_tdelta(self);
switch (what) {
case PyTrace_CALL:
fileno = get_fileno(self, frame->f_code);
if (fileno < 0)
return -1;
if (pack_enter(self, fileno, tdelta,
frame->f_code->co_firstlineno) < 0)
return -1;
break;
case PyTrace_RETURN:
if (pack_exit(self, tdelta) < 0)
return -1;
break;
default:
/* should never get here */
break;
}
return 0;
}
/* Alternate callback when we want PyTrace_LINE events */
static int static int
tracer_callback(ProfilerObject *self, PyFrameObject *frame, int what, tracer_callback(ProfilerObject *self, PyFrameObject *frame, int what,
PyObject *arg) PyObject *arg)
...@@ -893,7 +861,7 @@ tracer_callback(ProfilerObject *self, PyFrameObject *frame, int what, ...@@ -893,7 +861,7 @@ tracer_callback(ProfilerObject *self, PyFrameObject *frame, int what,
case PyTrace_RETURN: case PyTrace_RETURN:
return pack_exit(self, get_tdelta(self)); return pack_exit(self, get_tdelta(self));
case PyTrace_LINE: case PyTrace_LINE: /* we only get these events if we asked for them */
if (self->linetimings) if (self->linetimings)
return pack_lineno_tdelta(self, frame->f_lineno, return pack_lineno_tdelta(self, frame->f_lineno,
get_tdelta(self)); get_tdelta(self));
...@@ -987,7 +955,7 @@ do_start(ProfilerObject *self) ...@@ -987,7 +955,7 @@ do_start(ProfilerObject *self)
if (self->lineevents) if (self->lineevents)
PyEval_SetTrace((Py_tracefunc) tracer_callback, (PyObject *)self); PyEval_SetTrace((Py_tracefunc) tracer_callback, (PyObject *)self);
else else
PyEval_SetProfile((Py_tracefunc) profiler_callback, (PyObject *)self); PyEval_SetProfile((Py_tracefunc) tracer_callback, (PyObject *)self);
} }
static void static void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment