]> Sergey Matveev's repositories - public-inbox.git/commitdiff
reduce copies by passing string refs to Email::MIME
authorEric Wong <e@80x24.org>
Fri, 2 May 2014 20:28:43 +0000 (20:28 +0000)
committerEric Wong <e@80x24.org>
Fri, 2 May 2014 21:06:47 +0000 (21:06 +0000)
This should reduce data copies and memory usage, according
to Email::Simple documentation.

lib/PublicInbox/Feed.pm
lib/PublicInbox/WWW.pm
public-inbox-mda

index a507cda12350a7fda8bbd67a7b727b45f0f36638..09eb2fcaca7bdcec7bf8ae6624f9fa0d6a23df24 100644 (file)
@@ -299,7 +299,7 @@ sub dump_html_line {
 sub do_cat_mail {
        my ($git, $path) = @_;
        my $str = $git->cat_file("HEAD:$path");
-       Email::MIME->new($$str);
+       Email::MIME->new($str);
 }
 
 1;
index 649e3cf003fe1d73dba014fc818720c0a1f45526..4dbfe47dc97e15e0b532da6e83ad09d6696b9aec 100644 (file)
@@ -166,7 +166,7 @@ sub get_mid_html {
        my $pfx = "../f/$mid_href.html";
        require Email::MIME;
        [ 200, [ 'Content-Type' => 'text/html; charset=UTF-8' ],
-               [ PublicInbox::View->as_html(Email::MIME->new($$x), $pfx) ] ];
+               [ PublicInbox::View->as_html(Email::MIME->new($x), $pfx) ] ];
 }
 
 # /$LISTNAME/f/$MESSAGE_ID.html                   -> HTML content (fullquotes)
@@ -177,7 +177,7 @@ sub get_full_html {
        require PublicInbox::View;
        require Email::MIME;
        [ 200, [ 'Content-Type' => 'text/html' ],
-               [ PublicInbox::View->as_html(Email::MIME->new($$x))] ];
+               [ PublicInbox::View->as_html(Email::MIME->new($x))] ];
 }
 
 sub self_url {
index 096421bbeaf82aa067acb1d6bc1eaa31b5b6a992..522eeff7cd1bb2149aeeb3f161cb578a329a11cf 100755 (executable)
@@ -34,14 +34,14 @@ my $filtered; # string dest
 if (PublicInbox::MDA->precheck($filter, $dst->{address}) &&
     do_spamc($filter->simple, \$filtered)) {
        # update our message with SA headers (in case our filter rejects it)
-       my $msg = Email::Simple->new($filtered);
+       my $msg = Email::MIME->new(\$filtered);
        $filtered = undef;
        $filter->simple($msg);
 
        if (PublicInbox::Filter->run($msg)) {
                # run spamc again on the HTML-free message
                if (do_spamc($msg, \$filtered)) {
-                       $msg = Email::MIME->new($filtered);
+                       $msg = Email::MIME->new(\$filtered);
                        PublicInbox::MDA->set_list_headers($msg, $dst);
                        $filter->simple($msg);