lib/PublicInbox/MiscSearch.pm | 8 ++++---- lib/PublicInbox/Search.pm | 10 +++++----- diff --git a/lib/PublicInbox/MiscSearch.pm b/lib/PublicInbox/MiscSearch.pm index 5a44d751ce920b6da603fc095c83644d3ae9fcf6..48ef6914fe8be2d6ab82ab5498ac2a9a0f556462 100644 --- a/lib/PublicInbox/MiscSearch.pm +++ b/lib/PublicInbox/MiscSearch.pm @@ -50,7 +50,7 @@ $qp; } sub misc_enquire_once { # retry_reopen callback - my ($self, $qr, $opt) = @{$_[0]}; + my ($self, $qr, $opt) = @_; my $eq = $PublicInbox::Search::X{Enquire}->new($self->{xdb}); $eq->set_query($qr); my $desc = !$opt->{asc}; @@ -73,11 +73,11 @@ my $qp = $self->{qp} //= mi_qp_new($self); $qs = 'type:inbox' if $qs eq ''; my $qr = $qp->parse_query($qs, $PublicInbox::Search::QP_FLAGS); $opt->{relevance} = 1 unless exists $opt->{relevance}; - retry_reopen($self, \&misc_enquire_once, [ $self, $qr, $opt ]); + retry_reopen($self, \&misc_enquire_once, $qr, $opt); } sub ibx_data_once { - my ($self, $ibx) = @{$_[0]}; + my ($self, $ibx) = @_; my $xdb = $self->{xdb}; my $eidx_key = $ibx->eidx_key; # may be {inboxdir}, so private my $head = $xdb->postlist_begin('Q'.$eidx_key); @@ -92,7 +92,7 @@ } sub inbox_data { my ($self, $ibx) = @_; - retry_reopen($self, \&ibx_data_once, [ $self, $ibx ]); + retry_reopen($self, \&ibx_data_once, $ibx); } 1; diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 05d5a13320d230c2b60ca6f3990b856cd52d1437..574bc145681a95991f75e1f797efd2c059ad2d08 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -291,15 +291,15 @@ _do_enquire($self, $query, $opts); } sub retry_reopen { - my ($self, $cb, $arg) = @_; + my ($self, $cb, @arg) = @_; for my $i (1..10) { if (wantarray) { my @ret; - eval { @ret = $cb->($arg) }; + eval { @ret = $cb->($self, @arg) }; return @ret unless $@; } else { my $ret; - eval { $ret = $cb->($arg) }; + eval { $ret = $cb->($self, @arg) }; return $ret unless $@; } # Exception: The revision being read has been discarded - @@ -319,7 +319,7 @@ } sub _do_enquire { my ($self, $query, $opts) = @_; - retry_reopen($self, \&_enquire_once, [ $self, $query, $opts ]); + retry_reopen($self, \&_enquire_once, $query, $opts); } # returns true if all docs have the THREADID value @@ -329,7 +329,7 @@ (xdb($self)->get_metadata('has_threadid') // '') eq '1'; } sub _enquire_once { # retry_reopen callback - my ($self, $query, $opts) = @{$_[0]}; + my ($self, $query, $opts) = @_; my $xdb = xdb($self); my $enquire = $X{Enquire}->new($xdb); $enquire->set_query($query);