about summary refs log tree commit homepage
path: root/lib/PublicInbox/Gcf2.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-01-27 03:42:26 -0600
committerEric Wong <e@80x24.org>2021-01-29 05:04:40 +0000
commit07225b371bb3258766e135d099588d603506f788 (patch)
treec1a73efb525e8fe785856bec336d3c4e789d609e /lib/PublicInbox/Gcf2.pm
parentd00d6b8e196f897b02266228f8429eea12fb8e01 (diff)
downloadpublic-inbox-07225b371bb3258766e135d099588d603506f788.tar.gz
And note the PublicInbox::Spawn side effect of setting
PERL_INLINE_DIRECTORY.
Diffstat (limited to 'lib/PublicInbox/Gcf2.pm')
-rw-r--r--lib/PublicInbox/Gcf2.pm9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/PublicInbox/Gcf2.pm b/lib/PublicInbox/Gcf2.pm
index 01b83c96..99f4ae04 100644
--- a/lib/PublicInbox/Gcf2.pm
+++ b/lib/PublicInbox/Gcf2.pm
@@ -5,7 +5,8 @@
 # other libgit2 stuff may go here, too.
 package PublicInbox::Gcf2;
 use strict;
-use PublicInbox::Spawn qw(which popen_rd);
+use v5.10.1;
+use PublicInbox::Spawn qw(which popen_rd); # may set PERL_INLINE_DIRECTORY
 use Fcntl qw(LOCK_EX);
 use IO::Handle; # autoflush
 my (%CFG, $c_src, $lockfh);
@@ -73,6 +74,7 @@ sub add_alt ($$) {
                 $gcf2->add_alternate($_) for @abs_alt;
         }
         $gcf2->add_alternate($objdir);
+        1;
 }
 
 # Usage: $^X -MPublicInbox::Gcf2 -e PublicInbox::Gcf2::loop
@@ -86,7 +88,7 @@ sub loop () {
         while (<STDIN>) {
                 chomp;
                 my ($oid, $git_dir) = split(/ /, $_, 2);
-                $seen{$git_dir}++ or add_alt($gcf2, "$git_dir/objects");
+                $seen{$git_dir} //= add_alt($gcf2, "$git_dir/objects");
                 if (!$gcf2->cat_oid(1, $oid)) {
                         # retry once if missing.  We only get unabbreviated OIDs
                         # from SQLite or Xapian DBs, here, so malicious clients
@@ -94,8 +96,7 @@ sub loop () {
                         warn "I: $$ $oid missing, retrying in $git_dir\n";
 
                         $gcf2 = new();
-                        %seen = ($git_dir => 1);
-                        add_alt($gcf2, "$git_dir/objects");
+                        %seen = ($git_dir => add_alt($gcf2,"$git_dir/objects"));
 
                         if ($gcf2->cat_oid(1, $oid)) {
                                 warn "I: $$ $oid found after retry\n";