perf hists: Use own hpp_list for hierarchy mode
[cascardo/linux.git] / tools / perf / ui / hist.c
index 3a15e84..95795ef 100644 (file)
@@ -722,6 +722,7 @@ static int add_hierarchy_fmt(struct hists *hists, struct perf_hpp_fmt *fmt)
        struct perf_hpp_list_node *node = NULL;
        struct perf_hpp_fmt *fmt_copy;
        bool found = false;
+       bool skip = perf_hpp__should_skip(fmt, hists);
 
        list_for_each_entry(node, &hists->hpp_formats, list) {
                if (node->level == fmt->level) {
@@ -735,6 +736,7 @@ static int add_hierarchy_fmt(struct hists *hists, struct perf_hpp_fmt *fmt)
                if (node == NULL)
                        return -1;
 
+               node->skip = skip;
                node->level = fmt->level;
                perf_hpp_list__init(&node->hpp);
 
@@ -745,6 +747,9 @@ static int add_hierarchy_fmt(struct hists *hists, struct perf_hpp_fmt *fmt)
        if (fmt_copy == NULL)
                return -1;
 
+       if (!skip)
+               node->skip = false;
+
        list_add_tail(&fmt_copy->list, &node->hpp.fields);
        list_add_tail(&fmt_copy->sort_list, &node->hpp.sorts);