We can release the raw body buffer once we've obtained a copy of
the decoded buffer.  This reduces memory pressure ahead of some
expensive diff processing.
---
 lib/PublicInbox/View.pm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 64e73234..a6944b80 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -533,6 +533,7 @@ sub attach_link ($$$$;$) {
 
        my $nl = $idx eq '1' ? '' : "\n"; # like join("\n", ...)
        my $size = length($part->body);
+       delete $part->{bdy}; # save memory
 
        # hide attributes normally, unless we want to aid users in
        # spotting MUA problems:
@@ -632,6 +633,7 @@ sub add_text_body { # callback for each_part
                attach_link($ctx, $ct, $p, $fn, $err);
                $$rv .= "\n";
        }
+       delete $part->{bdy}; # save memory
        foreach my $cur (@sections) {
                if ($cur =~ /\A>/) {
                        # we use a <span> here to allow users to specify
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/

Reply via email to