aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/hist.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 7f0236cea4fe..38373c986e97 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -432,11 +432,11 @@ struct hist_entry *__hists__add_entry(struct hists *hists,
432int64_t 432int64_t
433hist_entry__cmp(struct hist_entry *left, struct hist_entry *right) 433hist_entry__cmp(struct hist_entry *left, struct hist_entry *right)
434{ 434{
435 struct sort_entry *se; 435 struct perf_hpp_fmt *fmt;
436 int64_t cmp = 0; 436 int64_t cmp = 0;
437 437
438 list_for_each_entry(se, &hist_entry__sort_list, list) { 438 perf_hpp__for_each_sort_list(fmt) {
439 cmp = se->se_cmp(left, right); 439 cmp = fmt->cmp(left, right);
440 if (cmp) 440 if (cmp)
441 break; 441 break;
442 } 442 }
@@ -447,15 +447,11 @@ hist_entry__cmp(struct hist_entry *left, struct hist_entry *right)
447int64_t 447int64_t
448hist_entry__collapse(struct hist_entry *left, struct hist_entry *right) 448hist_entry__collapse(struct hist_entry *left, struct hist_entry *right)
449{ 449{
450 struct sort_entry *se; 450 struct perf_hpp_fmt *fmt;
451 int64_t cmp = 0; 451 int64_t cmp = 0;
452 452
453 list_for_each_entry(se, &hist_entry__sort_list, list) { 453 perf_hpp__for_each_sort_list(fmt) {
454 int64_t (*f)(struct hist_entry *, struct hist_entry *); 454 cmp = fmt->collapse(left, right);
455
456 f = se->se_collapse ?: se->se_cmp;
457
458 cmp = f(left, right);
459 if (cmp) 455 if (cmp)
460 break; 456 break;
461 } 457 }