about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2024-04-24 06:44:46 +0000
committerEric Wong <e@80x24.org>2024-04-24 21:34:46 +0000
commit1682c7a2264b1083a9cd37151134667edbc31059 (patch)
treeec909bcc0fe3232299dfd35db12551e015a3b387
parent8e4426e3ff9e3dde861d4722b73b5a21c42910d4 (diff)
downloadpublic-inbox-1682c7a2264b1083a9cd37151134667edbc31059.tar.gz
This makes upcoming changes easier to understand.
-rw-r--r--lib/PublicInbox/Mbox.pm32
1 files changed, 14 insertions, 18 deletions
diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm
index 52f88ae3..ac565df9 100644
--- a/lib/PublicInbox/Mbox.pm
+++ b/lib/PublicInbox/Mbox.pm
@@ -175,6 +175,17 @@ sub mbox_all_ids {
         PublicInbox::MboxGz::mbox_gz($ctx, \&all_ids_cb, 'all');
 }
 
+sub refill_result_ids ($) {
+        my ($ctx) = @_;
+        # refill result set, deprioritize since there's many results
+        my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
+        my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
+        my $size = $mset->size or return;
+        $ctx->{qopts}->{offset} += $size;
+        $ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
+        $ctx->{-low_prio} = 1; # true
+}
+
 sub results_cb {
         my ($ctx) = @_;
         my $over = $ctx->{ibx}->over or return $ctx->gone('over');
@@ -183,13 +194,7 @@ sub results_cb {
                         my $smsg = $over->get_art($num) or next;
                         return $smsg;
                 }
-                # refill result set, deprioritize since there's many results
-                my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
-                my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
-                my $size = $mset->size or return;
-                $ctx->{qopts}->{offset} += $size;
-                $ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
-                $ctx->{-low_prio} = 1;
+                refill_result_ids($ctx) or return; # refill ctx->{ids}
         }
 }
 
@@ -202,19 +207,10 @@ sub results_thread_cb {
                         my $smsg = $over->get_art($num) or next;
                         return $smsg;
                 }
+                next if $over->expand_thread($ctx); # refills ctx->{xids}
 
-                # refills ctx->{xids}
-                next if $over->expand_thread($ctx);
-
-                # refill result set, deprioritize since there's many results
-                my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
-                my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
-                my $size = $mset->size or return;
-                $ctx->{qopts}->{offset} += $size;
-                $ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
-                $ctx->{-low_prio} = 1;
+                refill_result_ids($ctx) or return; # refill ctx->{ids}
         }
-
 }
 
 sub mbox_all {