]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
(ext)index: avoid needless {git} ref with --max-size
authorEric Wong <e@80x24.org>
Fri, 10 Jan 2025 23:18:14 +0000 (23:18 +0000)
committerEric Wong <e@80x24.org>
Tue, 14 Jan 2025 04:45:30 +0000 (04:45 +0000)
We can access the PublicInbox::Git object via {ibx} directly to
avoid redundant refs and cut down the $sync struct further.

lib/PublicInbox/SearchIdx.pm
lib/PublicInbox/V2Writable.pm

index d2954ed7c3273b8fe18b7d0b23efc9d18198fa39..77416e61a22e3ed19e8f86516fa1b31f29dc708f 100644 (file)
@@ -850,9 +850,10 @@ sub index_sync {
 
 sub check_size { # check_async cb for -index --max-size=...
        my (undef, $oid, $type, $size, $arg) = @_;
-       ($type // '') eq 'blob' or die "E: bad $oid in $arg->{git}->{git_dir}";
+       ($type // '') eq 'blob' or
+               die "E: bad $oid in $arg->{ibx}->{git}->{git_dir}";
        if ($size <= $arg->{max_size}) {
-               $arg->{git}->cat_async($oid, $arg->{index_oid}, $arg);
+               $arg->{ibx}->{git}->cat_async($oid, $arg->{index_oid}, $arg);
        } else {
                warn "W: skipping $oid ($size > $arg->{max_size})\n";
        }
@@ -931,7 +932,6 @@ sub v1_process_stack ($$$) {
                        $arg->{autime} = $at;
                        $arg->{cotime} = $ct;
                        if ($sync->{max_size}) {
-                               $arg->{git} = $git;
                                $git->check_async($oid, \&check_size, $arg);
                        } else {
                                $git->cat_async($oid, \&v1_index_both, $arg);
index 5d8a5484be6c972610fa3c85cbf0cfa401c737fa..27be8c39ed6073b2767cb66fb456eeeba95e3377 100644 (file)
@@ -1126,7 +1126,7 @@ sub index_todo ($$$) {
        return if $sync->{quit};
        unindex_todo($self, $sync, $unit);
        my $stk = delete($unit->{stack}) or return;
-       my $all = $self->git;
+       my $all = $self->git; # initialize self->{ibx}->{git}
        my $index_oid = $self->can('index_oid');
        my $unindex_oid = $self->can('unindex_oid');
        my $pfx;
@@ -1155,7 +1155,6 @@ sub index_todo ($$$) {
                };
                if ($f eq 'm') {
                        if ($sync->{max_size}) {
-                               $req->{git} = $all;
                                $all->check_async($oid, \&check_size, $req);
                        } else {
                                $all->cat_async($oid, $index_oid, $req);