Mercurial > public > mercurial-scm > hg
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: |