X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSearchThread.pm;h=00ae9faccc08b7b16aff259fb9cd54165b485eb2;hb=70209c643bd5b21d369dff684218714f5186993b;hp=f07dd69665623985461df30166cd0c148b4fe7f8;hpb=08b543eb6c67cc19ea8e86afe6b9494df79e2fea;p=public-inbox.git diff --git a/lib/PublicInbox/SearchThread.pm b/lib/PublicInbox/SearchThread.pm index f07dd696..00ae9fac 100644 --- a/lib/PublicInbox/SearchThread.pm +++ b/lib/PublicInbox/SearchThread.pm @@ -38,13 +38,13 @@ sub thread { # TODO: move this to a more appropriate place, breaks tests # if we do it during psgi_cull delete $_->{num}; - - PublicInbox::SearchThread::Msg::cast($_); + bless $_, 'PublicInbox::SearchThread::Msg'; if (exists $id_table{$_->{mid}}) { $_->{children} = []; push @imposters, $_; # we'll deal with them later undef; } else { + $_->{children} = {}; # will become arrayref later $id_table{$_->{mid}} = $_; defined($_->{references}); } @@ -108,13 +108,6 @@ sub ghost { }, __PACKAGE__; } -# give a existing smsg the methods of this class -sub cast { - my ($smsg) = @_; - $smsg->{children} = {}; - bless $smsg, __PACKAGE__; -} - sub topmost { my ($self) = @_; my @q = ($self); @@ -174,7 +167,7 @@ sub order_children { while (defined($cur = shift @q)) { # the {children} hashref here... my @c = grep { !$seen{$_}++ && visible($_, $ibx) } - values %{$cur->{children}}; + values %{delete $cur->{children}}; $ordersub->(\@c) if scalar(@c) > 1; $cur->{children} = \@c; # ...becomes an arrayref push @q, @c;