From 453dee4881a9c764b09d33f3a827879f2cd3669d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 7 May 2020 21:05:45 +0000 Subject: msg_iter: pass $idx as a scalar, not array This doesn't make any difference for most multipart messages (or any single part messages). However, this starts having space savings when parts start nesting. It also slightly simplifies callers. --- lib/PublicInbox/MsgIter.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/MsgIter.pm') diff --git a/lib/PublicInbox/MsgIter.pm b/lib/PublicInbox/MsgIter.pm index cd5a5d99..7c28d019 100644 --- a/lib/PublicInbox/MsgIter.pm +++ b/lib/PublicInbox/MsgIter.pm @@ -20,12 +20,14 @@ sub em_each_part ($$;$$) { my $i = 0; @parts = map { [ $_, 1, ++$i ] } @parts; while (my $p = shift @parts) { - my ($part, $depth, @idx) = @$p; + my ($part, $depth, $idx) = @$p; my @sub = $part->subparts; if (@sub) { $depth++; $i = 0; - @sub = map { [ $_, $depth, @idx, ++$i ] } @sub; + @sub = map { + [ $_, $depth, "$idx.".(++$i) ] + } @sub; @parts = (@sub, @parts); } else { $cb->($p, $cb_arg); -- cgit v1.2.3-24-ge0c7