Skip to content

Commit 7ea1535

Browse files
committed
refactor: remove some needless checks
1 parent f503dc5 commit 7ea1535

File tree

1 file changed

+46
-41
lines changed

1 file changed

+46
-41
lines changed

Diff for: coverage/sysmon.py

+46-41
Original file line numberDiff line numberDiff line change
@@ -522,13 +522,13 @@ def sysmon_py_return(
522522
if self.stats is not None:
523523
self.stats["returns"] += 1
524524
code_info = self.code_infos.get(id(code))
525-
if code_info is not None and code_info.file_data is not None:
526-
assert code_info.byte_to_line is not None
527-
last_line = code_info.byte_to_line[instruction_offset]
528-
if last_line is not None:
529-
arc = (last_line, -code.co_firstlineno)
530-
cast(set[TArc], code_info.file_data).add(arc)
531-
# log(f"adding {arc=}")
525+
# code_info is not None and code_info.file_data is not None, since we
526+
# wouldn't have enabled this event if they were.
527+
last_line = code_info.byte_to_line[instruction_offset] # type: ignore
528+
if last_line is not None:
529+
arc = (last_line, -code.co_firstlineno)
530+
code_info.file_data.add(arc) # type: ignore
531+
# log(f"adding {arc=}")
532532
return DISABLE
533533

534534
@panopticon("code", "line")
@@ -537,9 +537,12 @@ def sysmon_line_lines(self, code: CodeType, line_number: TLineNo) -> MonitorRetu
537537
if self.stats is not None:
538538
self.stats["line_lines"] += 1
539539
code_info = self.code_infos.get(id(code))
540+
# It should be true that code_info is not None and code_info.file_data
541+
# is not None, since we wouldn't have enabled this event if they were.
542+
# But somehow code_info can be None here, so we have to check.
540543
if code_info is not None and code_info.file_data is not None:
541-
cast(set[TLineNo], code_info.file_data).add(line_number)
542-
# log(f"adding {line_number=}")
544+
code_info.file_data.add(line_number) # type: ignore
545+
# log(f"adding {line_number=}")
543546
return DISABLE
544547

545548
@panopticon("code", "line")
@@ -548,10 +551,11 @@ def sysmon_line_arcs(self, code: CodeType, line_number: TLineNo) -> MonitorRetur
548551
if self.stats is not None:
549552
self.stats["line_arcs"] += 1
550553
code_info = self.code_infos[id(code)]
551-
if code_info.file_data is not None:
552-
arc = (line_number, line_number)
553-
cast(set[TArc], code_info.file_data).add(arc)
554-
# log(f"adding {arc=}")
554+
# code_info is not None and code_info.file_data is not None, since we
555+
# wouldn't have enabled this event if they were.
556+
arc = (line_number, line_number)
557+
code_info.file_data.add(arc) # type: ignore
558+
# log(f"adding {arc=}")
555559
return DISABLE
556560

557561
@panopticon("code", "@", "@")
@@ -562,33 +566,34 @@ def sysmon_branch_either(
562566
if self.stats is not None:
563567
self.stats["branches"] += 1
564568
code_info = self.code_infos[id(code)]
565-
if code_info.file_data is not None:
566-
if not code_info.branch_trails:
567-
if self.stats is not None:
568-
self.stats["branch_trails"] += 1
569-
populate_branch_trails(code, code_info)
570-
# log(f"branch_trails for {code}:\n {code_info.branch_trails}")
571-
added_arc = False
572-
dest_info = code_info.branch_trails.get(instruction_offset)
573-
# log(f"{dest_info = }")
574-
if dest_info is not None:
575-
for offsets, arc in dest_info:
576-
if arc is None:
577-
continue
578-
if destination_offset in offsets:
579-
cast(set[TArc], code_info.file_data).add(arc)
580-
# log(f"adding {arc=}")
581-
added_arc = True
582-
break
583-
584-
if not added_arc:
585-
# This could be an exception jumping from line to line.
586-
assert code_info.byte_to_line is not None
587-
l1 = code_info.byte_to_line[instruction_offset]
588-
l2 = code_info.byte_to_line[destination_offset]
589-
if l1 != l2:
590-
arc = (l1, l2)
591-
cast(set[TArc], code_info.file_data).add(arc)
592-
# log(f"adding unforeseen {arc=}")
569+
# code_info is not None and code_info.file_data is not None, since we
570+
# wouldn't have enabled this event if they were.
571+
if not code_info.branch_trails:
572+
if self.stats is not None:
573+
self.stats["branch_trails"] += 1
574+
populate_branch_trails(code, code_info)
575+
# log(f"branch_trails for {code}:\n {code_info.branch_trails}")
576+
added_arc = False
577+
dest_info = code_info.branch_trails.get(instruction_offset)
578+
# log(f"{dest_info = }")
579+
if dest_info is not None:
580+
for offsets, arc in dest_info:
581+
if arc is None:
582+
continue
583+
if destination_offset in offsets:
584+
code_info.file_data.add(arc) # type: ignore
585+
# log(f"adding {arc=}")
586+
added_arc = True
587+
break
588+
589+
if not added_arc:
590+
# This could be an exception jumping from line to line.
591+
assert code_info.byte_to_line is not None
592+
l1 = code_info.byte_to_line[instruction_offset]
593+
l2 = code_info.byte_to_line[destination_offset]
594+
if l1 != l2:
595+
arc = (l1, l2)
596+
code_info.file_data.add(arc) # type: ignore
597+
# log(f"adding unforeseen {arc=}")
593598

594599
return DISABLE

0 commit comments

Comments
 (0)