about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-08-17 02:41:18 +0000
committerEric Wong <e@80x24.org>2015-08-17 03:14:21 +0000
commit53d0c896f8804d9c5c7a7b18b927e9a425b88a3a (patch)
tree8f318f82d4f3a0c70ebfdbd5551f4bd176db36fe /lib
parent52aff6ba71ad0c13c28d2ffaea43c157546a1daf (diff)
downloadpublic-inbox-53d0c896f8804d9c5c7a7b18b927e9a425b88a3a.tar.gz
We can rely on reference counting to lower memory usage for
big messages.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Feed.pm10
-rw-r--r--lib/PublicInbox/View.pm2
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 226c50ea..95bde4f5 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -243,23 +243,25 @@ sub add_to_feed {
         my $midurl = $feed_opts->{midurl} || 'http://example.com/m/';
         my $fullurl = $feed_opts->{fullurl} || 'http://example.com/f/';
 
-        my $mid = $mime->header_obj->header_raw('Message-ID');
+        my $header_obj = $mime->header_obj;
+        my $mid = $header_obj->header_raw('Message-ID');
         defined $mid or return 0;
         $mid = PublicInbox::Hval->new_msgid($mid);
         my $href = $mid->as_href . '.html';
         my $content = PublicInbox::View->feed_entry($mime, $fullurl . $href);
         defined($content) or return 0;
+        $mime = undef;
 
-        my $subject = mime_header($mime, 'Subject') or return 0;
+        my $subject = mime_header($header_obj, 'Subject') or return 0;
 
-        my $from = mime_header($mime, 'From') or return 0;
+        my $from = mime_header($header_obj, 'From') or return 0;
         my @from = Email::Address->parse($from);
         my $name = $from[0]->name;
         defined $name or $name = "";
         my $email = $from[0]->address;
         defined $email or $email = "";
 
-        my $date = $mime->header('Date');
+        my $date = $header_obj->header('Date');
         $date = PublicInbox::Hval->new_oneline($date);
         $date = feed_date($date->raw) or return 0;
         $add =~ tr!/!!d;
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 4f2833b3..55e12f26 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -116,6 +116,7 @@ sub index_entry {
                                   \$more);
                 $part_nr++;
         });
+        $mime->body_set('');
 
         $rv .= "\n$pfx<a\nhref=\"$mhref\">$more</a> ";
         my $txt = "${path}m/$href.txt";
@@ -277,6 +278,7 @@ sub multipart_text_as_html {
                 $rv .= "\n" unless $rv =~ /\n\z/s;
                 ++$part_nr;
         });
+        $mime->body_set('');
         $rv;
 }