mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/misra: diff-report.py: Fix UnifiedFormatParser change line registration
Fix the line number on the registration of a 'remove' change type when
consecutive 'remove' changes are registered.
Currently the algorithm registers consecutive 'remove' changes at the same
line it encounter the first one, 'add' changes type are not affected by the
bug.
Fixes: 1d7c45f895 ("xen/misra: diff-report.py: add report patching feature")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
1 parent
b1c16800e5
commit
43247f4f23
1 file changed
+6
-1
@@ -144,6 +144,7 @@ class UnifiedFormatParser(object):
|
||||
file_linenum = 0
|
||||
hunk_a_linemax = 0
|
||||
hunk_b_linemax = 0
|
||||
consecutive_remove = 0
|
||||
diff_elem = None
|
||||
parse_state = ParserState.FIND_DIFF_HEADER
|
||||
ChangeMode = ChangeSet.ChangeMode
|
||||
@@ -210,14 +211,18 @@ class UnifiedFormatParser(object):
|
||||
if (hunk_b_linemax > 0) and line.startswith("+"):
|
||||
diff_elem.add_change(file_linenum, ChangeType.ADD)
|
||||
hunk_b_linemax -= 1
|
||||
consecutive_remove = 0
|
||||
elif (hunk_a_linemax > 0) and line.startswith("-"):
|
||||
diff_elem.add_change(file_linenum, ChangeType.REMOVE)
|
||||
diff_elem.add_change(file_linenum + consecutive_remove,
|
||||
ChangeType.REMOVE)
|
||||
hunk_a_linemax -= 1
|
||||
file_linenum -= 1
|
||||
consecutive_remove += 1
|
||||
elif ((hunk_a_linemax + hunk_b_linemax) > 0) and \
|
||||
line.startswith(" "):
|
||||
hunk_a_linemax -= 1 if (hunk_a_linemax > 0) else 0
|
||||
hunk_b_linemax -= 1 if (hunk_b_linemax > 0) else 0
|
||||
consecutive_remove = 0
|
||||
|
||||
if (hunk_a_linemax + hunk_b_linemax) <= 0:
|
||||
parse_state = ParserState.FIND_HUNK_OR_DIFF_HEADER
|
||||
|
||||