Mercurial > hg
changeset 49578:aab3d4c05720 stable
profile: prevent a crash when line number is unknown
For some unknown reason, `self.lineno` can be None. The previous code crashed in
such case, we now ignore the case, as we do for other error in this function.
We also fallback to using `-1` in the output when this lack of line number
makes it to the display code.
The reason of unknown line-numbers is… unknown.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 12 Nov 2022 02:30:41 +0100 |
parents | d12446766a35 |
children | 15a89b722937 |
files | mercurial/statprof.py |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/statprof.py Sun Nov 06 12:15:35 2022 -0500 +++ b/mercurial/statprof.py Sat Nov 12 02:30:41 2022 +0100 @@ -236,8 +236,8 @@ def getsource(self, length): if self.source is None: - lineno = self.lineno - 1 try: + lineno = self.lineno - 1 # lineno can be None with open(self.path, b'rb') as fp: for i, line in enumerate(fp): if i == lineno: @@ -773,7 +773,7 @@ codestring = codepattern % ( prefix, b'line'.rjust(spacing_len), - site.lineno, + site.lineno if site.lineno is not None else -1, b''.ljust(max(0, 4 - len(str(site.lineno)))), site.getsource(30), )