@@ -288,7 +288,7 @@ class FrameSummary:
288288 """
289289
290290 __slots__ = ('filename' , 'lineno' , 'end_lineno' , 'colno' , 'end_colno' ,
291- 'name' , '_lines' , '_lines_dedented' , 'locals' , '_frame ' )
291+ 'name' , '_lines' , '_lines_dedented' , 'locals' , '_code ' )
292292
293293 def __init__ (self , filename , lineno , name , * , lookup_line = True ,
294294 locals = None , line = None ,
@@ -308,7 +308,7 @@ def __init__(self, filename, lineno, name, *, lookup_line=True,
308308 self .colno = colno
309309 self .end_colno = end_colno
310310 self .name = name
311- self ._frame = kwargs .get ("_frame " )
311+ self ._code = kwargs .get ("_code " )
312312 self ._lines = line
313313 self ._lines_dedented = None
314314 if lookup_line :
@@ -348,11 +348,9 @@ def _set_lines(self):
348348 lines = []
349349 for lineno in range (self .lineno , self .end_lineno + 1 ):
350350 # treat errors (empty string) and empty lines (newline) as the same
351- line = None
352- if self ._frame is not None and self .filename .startswith ("<" ):
353- line = linecache ._getline_from_code (self ._frame .f_code , lineno , self ._frame .f_globals ).rstrip ()
354- if line is None :
355- line = linecache .getline (self .filename , lineno ).rstrip ()
351+ line = linecache .getline (self .filename , lineno ).rstrip ()
352+ if not line and self ._code is not None and self .filename .startswith ("<" ):
353+ line = linecache ._getline_from_code (self ._code , lineno ).rstrip ()
356354 lines .append (line )
357355 self ._lines = "\n " .join (lines ) + "\n "
358356
@@ -490,7 +488,7 @@ def _extract_from_extended_frame_gen(klass, frame_gen, *, limit=None,
490488 FrameSummary (filename , lineno , name ,
491489 lookup_line = False , locals = f_locals ,
492490 end_lineno = end_lineno , colno = colno , end_colno = end_colno ,
493- _frame = f ,
491+ _code = f . f_code ,
494492 )
495493 )
496494 for filename in fnames :
0 commit comments