|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/2] xen/misra: diff-report.py: Fix UnifiedFormatParser change line registration
On Tue, 18 Jul 2023, Luca Fancellu wrote:
> 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: 1d7c45f895b6 ("xen/misra: diff-report.py: add report patching feature")
> Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx>
Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> .../xen_analysis/diff_tool/unified_format_parser.py | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/xen/scripts/xen_analysis/diff_tool/unified_format_parser.py
> b/xen/scripts/xen_analysis/diff_tool/unified_format_parser.py
> index 8b3fbc318df7..6c506caeafce 100644
> --- a/xen/scripts/xen_analysis/diff_tool/unified_format_parser.py
> +++ b/xen/scripts/xen_analysis/diff_tool/unified_format_parser.py
> @@ -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
> --
> 2.34.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |