X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSolverGit.pm;fp=lib%2FPublicInbox%2FSolverGit.pm;h=5d5060f453cbf58da624c64f27cb13e6ab7dc221;hb=17c6b04327bac7debf5dbfa633a8fbdf3cd96873;hp=b0cd0f2c20be67c596b130d923941918a1adcf0d;hpb=9f64411551e971251d17b3d346a7f250df5ef350;p=public-inbox.git diff --git a/lib/PublicInbox/SolverGit.pm b/lib/PublicInbox/SolverGit.pm index b0cd0f2c..5d5060f4 100644 --- a/lib/PublicInbox/SolverGit.pm +++ b/lib/PublicInbox/SolverGit.pm @@ -111,8 +111,6 @@ sub extract_diff ($$) { my ($self, $want, $smsg) = @$arg; my ($part) = @$p; # ignore $depth and @idx; my $ct = $part->content_type || 'text/plain'; - my ($s, undef) = msg_part_text($part, $ct); - defined $s or return; my $post = $want->{oid_b}; my $pre = $want->{oid_a}; if (!defined($pre) || $pre !~ /\A[a-f0-9]+\z/) { @@ -122,11 +120,12 @@ sub extract_diff ($$) { # Email::MIME::Encodings forces QP to be CRLF upon decoding, # change it back to LF: my $cte = $part->header('Content-Transfer-Encoding') || ''; + my ($s, undef) = msg_part_text($part, $ct); + defined $s or return; + delete $part->{bdy}; if ($cte =~ /\bquoted-printable\b/i && $part->crlf eq "\n") { $s =~ s/\r\n/\n/sg; } - - $s =~ m!( # $1 start header lines we save for debugging: # everything before ^index is optional, but we don't @@ -169,6 +168,7 @@ sub extract_diff ($$) { # because git-apply(1) handles that case, too (?:^(?:[\@\+\x20\-\\][^\n]*|)$LF)+ )!smx or return; + undef $s; # free memory my $di = { hdr_lines => $1,