X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSearchMsg.pm;h=42384936b923364bb17fc515bd6b39c0d83bc35e;hb=95bdac7f09c69036efed537a4d03d5bdd2ae4eb6;hp=7561e7f2767071f4266caee84fad56fff5f283ca;hpb=dc84f78e4b3c7f5c8384fbf5a6b538ac1826a604;p=public-inbox.git diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm index 7561e7f2..42384936 100644 --- a/lib/PublicInbox/SearchMsg.pm +++ b/lib/PublicInbox/SearchMsg.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2019 all contributors +# Copyright (C) 2015-2020 all contributors # License: AGPL-3.0+ # based on notmuch, but with no concept of folders, files or flags # @@ -27,7 +27,8 @@ sub wrap { sub get_val ($$) { my ($doc, $col) = @_; - Search::Xapian::sortable_unserialise($doc->get_value($col)); + # sortable_unserialise is defined by PublicInbox::Search::load_xapian() + sortable_unserialise($doc->get_value($col)); } sub to_doc_data { @@ -91,10 +92,11 @@ sub psgi_cull ($) { } # Only called by PSGI interface, not NNTP -sub load_doc { - my ($class, $doc) = @_; - my $self = bless {}, $class; - psgi_cull(load_expand($self, $doc)); +sub from_mitem { + my ($mitem, $srch) = @_; + return $srch->retry_reopen(\&from_mitem, $mitem) if $srch; + my $self = bless {}, __PACKAGE__; + psgi_cull(load_expand($self, $mitem->get_document)); } # :bytes and :lines metadata in RFC 3977