summaryrefslogtreecommitdiff
path: root/coverage/pytracer.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2016-03-02 07:05:27 -0500
committerNed Batchelder <ned@nedbatchelder.com>2016-03-02 07:05:27 -0500
commit5a73f39a93a33a41dafa85a63cfcd2f11cdce92a (patch)
tree3c1a38676505236a70a787867269d8f956ee5104 /coverage/pytracer.py
parent16475bc1922e50f775c3362b7b32d60579f5d60b (diff)
downloadpython-coveragepy-5a73f39a93a33a41dafa85a63cfcd2f11cdce92a.tar.gz
Entry arcs now use the negative first line of the code object instead of -1.
Diffstat (limited to 'coverage/pytracer.py')
-rw-r--r--coverage/pytracer.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/coverage/pytracer.py b/coverage/pytracer.py
index cdb3ae7..4743232 100644
--- a/coverage/pytracer.py
+++ b/coverage/pytracer.py
@@ -92,9 +92,12 @@ class PyTracer(object):
self.cur_file_dict = self.data[tracename]
# The call event is really a "start frame" event, and happens for
# function calls and re-entering generators. The f_lasti field is
- # -1 for calls, and a real offset for generators. Use -1 as the
+ # -1 for calls, and a real offset for generators. Use <0 as the
# line number for calls, and the real line number for generators.
- self.last_line = -1 if (frame.f_lasti < 0) else frame.f_lineno
+ if frame.f_lasti < 0:
+ self.last_line = -frame.f_code.co_firstlineno
+ else:
+ self.last_line = frame.f_lineno
elif event == 'line':
# Record an executed line.
if self.cur_file_dict is not None: