about summary refs log tree commit homepage
path: root/lib/PublicInbox/MID.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/MID.pm')
-rw-r--r--lib/PublicInbox/MID.pm18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/PublicInbox/MID.pm b/lib/PublicInbox/MID.pm
index 117d3c42..c82e8401 100644
--- a/lib/PublicInbox/MID.pm
+++ b/lib/PublicInbox/MID.pm
@@ -65,12 +65,6 @@ sub mids ($) {
                         push(@mids, $v);
                 }
         }
-        foreach my $i (0..$#mids) {
-                next if length($mids[$i]) <= MAX_MID_SIZE;
-                warn "Message-ID: <$mids[$i]> too long, truncating\n";
-                $mids[$i] = substr($mids[$i], 0, MAX_MID_SIZE);
-        }
-
         uniq_mids(\@mids);
 }
 
@@ -92,10 +86,14 @@ sub uniq_mids ($) {
         my ($mids) = @_;
         my @ret;
         my %seen;
-        foreach (@$mids) {
-                next if $seen{$_};
-                push @ret, $_;
-                $seen{$_} = 1;
+        foreach my $mid (@$mids) {
+                if (length($mid) > MAX_MID_SIZE) {
+                        warn "Message-ID: <$mid> too long, truncating\n";
+                        $mid = substr($mid, 0, MAX_MID_SIZE);
+                }
+                next if $seen{$mid};
+                push @ret, $mid;
+                $seen{$mid} = 1;
         }
         \@ret;
 }