From: Eric Wong Date: Wed, 5 Oct 2016 23:47:28 +0000 (+0000) Subject: thread: fix sorting without topmost X-Git-Tag: v1.0.0~170 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c9dd6619f825f0515e7e4afa1bd55c99c1a68d3;p=thirdparty%2Fpublic-inbox.git thread: fix sorting without topmost This bug was hidden, and we may not be able to efficiently implement a topmost subroutine with the hash-based (vs linked-list) based container for threading in the next commit. --- diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index ebeb41f7a..cfe6dfffa 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -155,9 +155,8 @@ sub mset_thread { $th->thread; if ($q->{r}) { # order by relevance $th->order(sub { - [ sort { (eval { $pct{$b->topmost->{id}} } || 0) - <=> - (eval { $pct{$a->topmost->{id}} } || 0) + [ sort { ( $pct{$b->{id}} || 0) <=> + ( $pct{$a->{id}} || 0) } @{$_[0]} ]; }); } else { # order by time (default for threaded view) diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 7554d54f8..c09b4a22b 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -857,8 +857,8 @@ sub skel_dump { sub sort_ts { [ sort { - (eval { $a->topmost->{smsg}->ts } || 0) <=> - (eval { $b->topmost->{smsg}->ts } || 0) + (eval { $a->{smsg}->ts } || 0) <=> + (eval { $b->{smsg}->ts } || 0) } @{$_[0]} ]; }