From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 7651720798 for ; Sat, 24 Dec 2016 11:52:46 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 4/4] linkify: modify argument in place Date: Sat, 24 Dec 2016 11:52:44 +0000 Message-Id: <20161224115244.15402-5-e@80x24.org> In-Reply-To: <20161224115244.15402-1-e@80x24.org> References: <20161224115244.15402-1-e@80x24.org> List-Id: This results in over 1% speedup doing $MESSAGE_ID/T/ HTML generation for a 368-message thread. --- lib/PublicInbox/Linkify.pm | 17 +++++++---------- lib/PublicInbox/View.pm | 5 ++--- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/lib/PublicInbox/Linkify.pm b/lib/PublicInbox/Linkify.pm index acd2a47..8e1728c 100644 --- a/lib/PublicInbox/Linkify.pm +++ b/lib/PublicInbox/Linkify.pm @@ -22,11 +22,10 @@ my $LINK_RE = qr{(\()?\b((?:ftps?|https?|nntps?|gopher):// (?:\#[a-z0-9\-\._~!\$\&\';\(\)\*\+,;=:@/%\?]+)? )}xi; -sub new { bless {}, shift } +sub new { bless {}, $_[0] } sub linkify_1 { - my ($self, $s) = @_; - $s =~ s!$LINK_RE! + $_[1] =~ s!$LINK_RE! my $beg = $1 || ''; my $url = $2; my $end = ''; @@ -50,19 +49,17 @@ sub linkify_1 { # only escape ampersands, others do not match LINK_RE $url =~ s/&/&/g; - $self->{$key} = $url; + $_[0]->{$key} = $url; $beg . 'PI-LINK-'. $key . $end; !ge; - $s; + $_[1]; } sub linkify_2 { - my ($self, $s) = @_; - # Added "PI-LINK-" prefix to avoid false-positives on git commits - $s =~ s!\bPI-LINK-([a-f0-9]{40})\b! + $_[1] =~ s!\bPI-LINK-([a-f0-9]{40})\b! my $key = $1; - my $url = $self->{$key}; + my $url = $_[0]->{$key}; if (defined $url) { "$url"; } else { @@ -70,7 +67,7 @@ sub linkify_2 { $key; } !ge; - $s; + $_[1]; } 1; diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 39ca959..e4e9d7d 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -482,9 +482,8 @@ sub add_text_body { flush_quote(\$s, $l, \@quot) if @quot; # regular line, OK - $cur = $l->linkify_1($cur); - $cur = ascii_html($cur); - $s .= $l->linkify_2($cur); + $l->linkify_1($cur); + $s .= $l->linkify_2(ascii_html($cur)); } else { push @quot, $cur; } -- EW