comparison mercurial/statprof.py @ 42834:c085cb134b9e

statprof: use context manager when reading source from file Differential Revision: https://phab.mercurial-scm.org/D6779
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 30 Aug 2019 16:43:43 -0700
parents 3f81d58aae25
children db6d7cbda80b
comparison
equal deleted inserted replaced
42833:3f81d58aae25 42834:c085cb134b9e
234 return v 234 return v
235 235
236 def getsource(self, length): 236 def getsource(self, length):
237 if self.source is None: 237 if self.source is None:
238 lineno = self.lineno - 1 238 lineno = self.lineno - 1
239 fp = None
240 try: 239 try:
241 fp = open(self.path, 'rb') 240 with open(self.path, 'rb') as fp:
242 for i, line in enumerate(fp): 241 for i, line in enumerate(fp):
243 if i == lineno: 242 if i == lineno:
244 self.source = line.strip() 243 self.source = line.strip()
245 break 244 break
246 except: 245 except:
247 pass 246 pass
248 finally:
249 if fp:
250 fp.close()
251 if self.source is None: 247 if self.source is None:
252 self.source = '' 248 self.source = ''
253 249
254 source = self.source 250 source = self.source
255 if len(source) > length: 251 if len(source) > length: