From df4bbdeb6ea6d526120c3058b0eab8bab16d0a55 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Mon, 13 Apr 2015 19:00:25 +0300 Subject: [PATCH] Do not mutate $self->{context} while formatting diffs --- Bugzilla/Diff.pm | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/Bugzilla/Diff.pm b/Bugzilla/Diff.pm index be04f2ed1..2f1ec9d7a 100644 --- a/Bugzilla/Diff.pm +++ b/Bugzilla/Diff.pm @@ -78,21 +78,22 @@ sub get_table # value is array of [type, value] after glue_context if (ref $_) { + my $s = ''; for (@$_) { - my $t = $_->[0]; - $_ = html_quote($_->[1]); - s/\n/
/gso; - if ($t eq TYPE_REM) + my $r = html_quote($_->[1]); + $r =~ s/\n/
/gso; + if ($_->[0] eq TYPE_REM) { - $_ = ''.$_.''; + $r = ''.$r.''; } - elsif ($t eq TYPE_ADD) + elsif ($_->[0] eq TYPE_ADD) { - $_ = ''.$_.''; + $r = ''.$r.''; } + $s .= $r; } - $_ = join('', @$_); + $_ = $s; } } @@ -135,20 +136,21 @@ sub get_part # value is array of [type, value] after glue_context if (ref $lval) { + my $s = ''; for (@$lval) { - my $t = $_->[0]; - $_ = $_->[1]; - if ($_ eq TYPE_REM) + my $r = $_->[1]; + if ($_->[0] eq TYPE_REM) { - s/^/-/gmo; + $r =~ s/^/-/gmo; } - elsif ($t eq TYPE_ADD) + elsif ($_->[0] eq TYPE_ADD) { - s/^/+/gmo; + $r =~ s/^/+/gmo; } + $s .= $r; } - $lval = join('', @$lval); + $lval = $s; } $result .= "\n$lval"; }