From: Eric Wong <e@80x24.org> To: meta@public-inbox.org Subject: [PATCH 13/17] thread: fix sorting without topmost Date: Wed, 5 Oct 2016 23:57:18 +0000 Message-ID: <20161005235722.14857-14-e@80x24.org> (raw) In-Reply-To: <20161005235722.14857-1-e@80x24.org> 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. --- lib/PublicInbox/SearchView.pm | 5 ++--- lib/PublicInbox/View.pm | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index ebeb41f..cfe6dff 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 7554d54..c09b4a2 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]} ]; } -- EW
next prev parent reply index Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-10-05 23:57 [PATCH 0/17] remove Mail::Thread dependency Eric Wong 2016-10-05 23:57 ` [PATCH 01/17] view: remove "subject dummy" references Eric Wong 2016-10-05 23:57 ` [PATCH 02/17] thread: remove Mail::Thread dependency Eric Wong 2016-10-05 23:57 ` [PATCH 03/17] thread: pass array refs instead of entire arrays Eric Wong 2016-10-05 23:57 ` [PATCH 04/17] thread: remove accessor usage in internals Eric Wong 2016-10-05 23:57 ` [PATCH 05/17] inbox: deal with ghost smsg Eric Wong 2016-10-05 23:57 ` [PATCH 06/17] thread: remove Email::Abstract wrapping Eric Wong 2016-10-05 23:57 ` [PATCH 07/17] thread: remove rootset accessor method Eric Wong 2016-10-05 23:57 ` [PATCH 08/17] thread: simplify Eric Wong 2016-10-05 23:57 ` [PATCH 09/17] thread: remove iterate_down Eric Wong 2016-10-05 23:57 ` [PATCH 10/17] thread: avoid incrementing undefined value Eric Wong 2016-10-05 23:57 ` [PATCH 11/17] thread: order_children no longer cares about depth Eric Wong 2016-10-05 23:57 ` [PATCH 12/17] thread: inline and remove recurse_down logic Eric Wong 2016-10-05 23:57 ` Eric Wong [this message] 2016-10-14 21:17 ` [PATCH] thread: reinstates stable ordering when ghosts are present Eric Wong 2016-10-05 23:57 ` [PATCH 14/17] thread: use hash + array instead of hand-rolled linked list Eric Wong 2016-10-05 23:57 ` [PATCH 15/17] view: remove redundant children array in thread views Eric Wong 2016-10-05 23:57 ` [PATCH 16/17] t/thread-cycle: test self-referential messages Eric Wong 2016-10-05 23:57 ` [PATCH 17/17] thread: remove weaken dependency Eric Wong 2016-10-06 8:22 ` [PATCH 0/17] remove Mail::Thread dependency Eric Wong 2016-10-13 3:59 ` [PATCH 0/2] thread: fix regressions from Mail::Thread removal Eric Wong
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://public-inbox.org/README * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20161005235722.14857-14-e@80x24.org \ --to=e@80x24.org \ --cc=meta@public-inbox.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
user/dev discussion of public-inbox itself Archives are clonable: git clone --mirror https://public-inbox.org/meta git clone --mirror http://czquwvybam4bgbro.onion/meta git clone --mirror http://hjrcffqmbrq6wope.onion/meta git clone --mirror http://ou63pmih66umazou.onion/meta Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta nntp://news.gmane.org/gmane.mail.public-inbox.general note: .onion URLs require Tor: https://www.torproject.org/ or Tor2web: https://www.tor2web.org/ AGPL code for this site: git clone https://public-inbox.org/ public-inbox