-
- for (thread_results(load_results($sres))->rootset) {
- add_topic($state, $_, 0);
+ $sres = load_results($sres);
+ my @q = map { (0, $_) } thread_results($sres)->rootset;
+ while (@q) {
+ my $level = shift @q;
+ my $node = shift @q or next;
+ add_topic($state, $level, $node);
+ unshift @q, $level+1, $node->child, $level, $node->next;