diff options
author | Eric Wong <e@80x24.org> | 2020-09-11 07:32:31 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2020-09-12 20:29:11 +0000 |
commit | d11feea98718f2abb109af4216a36bdbd21b7191 (patch) | |
tree | 1f6f83caf21d52f61524e935fa53dcbb6f789877 /lib/PublicInbox/V2Writable.pm | |
parent | 0a1e15ad863782650a36025b9d52a6e9de5eadf3 (diff) | |
download | public-inbox-d11feea98718f2abb109af4216a36bdbd21b7191.tar.gz |
treewide: avoid `goto &NAME' for tail recursion
While Perl implements tail recursion via `goto' which allows avoiding warnings on deep recursion. It doesn't (as of 5.28) optimize the speed of such dispatches, though it may reduce ephemeral memory usage. Make the code less alien to hackers coming from other languages by using normal subroutine dispatch. It's actually slightly faster in micro benchmarks due to the complexity of `goto &NAME'.
Diffstat (limited to 'lib/PublicInbox/V2Writable.pm')
-rw-r--r-- | lib/PublicInbox/V2Writable.pm | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index a1f6048f..b8abfa94 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -1267,8 +1267,8 @@ sub xapian_only { # public, called by public-inbox-index sub index_sync { my ($self, $opt) = @_; - $opt //= $_[1] //= {}; - goto \&xapian_only if $opt->{xapian_only}; + $opt //= {}; + return xapian_only($self, $opt) if $opt->{xapian_only}; my $pr = $opt->{-progress}; my $epoch_max; |