Merged revisions 84994 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84994 | alexander.belopolsky | 2010-09-24 14:03:12 -0400 (Fri, 24 Sep 2010) | 1 line

  Issue #9936: Fixed executable lines' search in the trace module.
........
diff --git a/Lib/trace.py b/Lib/trace.py
index 7ec0cf6..12e1b49 100644
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -58,7 +58,7 @@
 import tokenize
 import inspect
 import gc
-
+import dis
 try:
     import cPickle
     pickle = cPickle
@@ -379,13 +379,7 @@
     """Return dict where keys are lines in the line number table."""
     linenos = {}
 
-    line_increments = [ord(c) for c in code.co_lnotab[1::2]]
-    table_length = len(line_increments)
-    docstring = False
-
-    lineno = code.co_firstlineno
-    for li in line_increments:
-        lineno += li
+    for _, lineno in dis.findlinestarts(code):
         if lineno not in strs:
             linenos[lineno] = 1