aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/ui/browsers/hists.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/ui/browsers/hists.c')
-rw-r--r--tools/perf/util/ui/browsers/hists.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
index 4a3a7c96b9b6..b144b108029a 100644
--- a/tools/perf/util/ui/browsers/hists.c
+++ b/tools/perf/util/ui/browsers/hists.c
@@ -600,14 +600,23 @@ static int hist_browser__show_entry(struct hist_browser *self,
600 return printed; 600 return printed;
601} 601}
602 602
603static void ui_browser__hists_init_top(struct ui_browser *browser)
604{
605 if (browser->top == NULL) {
606 struct hist_browser *hb;
607
608 hb = container_of(browser, struct hist_browser, b);
609 browser->top = rb_first(&hb->hists->entries);
610 }
611}
612
603static unsigned int hist_browser__refresh(struct ui_browser *self) 613static unsigned int hist_browser__refresh(struct ui_browser *self)
604{ 614{
605 unsigned row = 0; 615 unsigned row = 0;
606 struct rb_node *nd; 616 struct rb_node *nd;
607 struct hist_browser *hb = container_of(self, struct hist_browser, b); 617 struct hist_browser *hb = container_of(self, struct hist_browser, b);
608 618
609 if (self->top == NULL) 619 ui_browser__hists_init_top(self);
610 self->top = rb_first(&hb->hists->entries);
611 620
612 for (nd = self->top; nd; nd = rb_next(nd)) { 621 for (nd = self->top; nd; nd = rb_next(nd)) {
613 struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node); 622 struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
@@ -659,6 +668,8 @@ static void ui_browser__hists_seek(struct ui_browser *self,
659 if (self->nr_entries == 0) 668 if (self->nr_entries == 0)
660 return; 669 return;
661 670
671 ui_browser__hists_init_top(self);
672
662 switch (whence) { 673 switch (whence) {
663 case SEEK_SET: 674 case SEEK_SET:
664 nd = hists__filter_entries(rb_first(self->entries)); 675 nd = hists__filter_entries(rb_first(self->entries));