Re: [PATCH 16/23] perf hists browser: Count number of hierarchy entries

From: Jiri Olsa
Date: Wed Feb 10 2016 - 07:52:59 EST


On Fri, Feb 05, 2016 at 10:01:48PM +0900, Namhyung Kim wrote:

SNIP

> +static int hierarchy_count_rows(struct hist_browser *hb, struct hist_entry *he,
> + bool include_children)
> +{
> + int count = 0;
> + struct rb_node *node;
> + struct hist_entry *child;
> +
> + if (he->leaf)
> + return callchain__count_rows(&he->sorted_chain);
> +
> + node = rb_first(&he->hroot_out);
> + while (node) {
> + float percent;
> +
> + child = rb_entry(node, struct hist_entry, rb_node);
> + percent = hist_entry__get_percent_limit(child);
> +
> + if (!child->filtered && percent >= hb->min_pcnt) {
> + count++;
> +
> + if (include_children && child->unfolded)
> + count += hierarchy_count_rows(hb, child, true);
> + }
> +
> + node = rb_next(node);
> + }
> + return count;
> +}

SNIP

> + if (he->leaf)
> + browser->nr_callchain_rows -= he->nr_rows;
> else
> + browser->nr_hierarchy_entries -= he->nr_rows;
> +
> + if (symbol_conf.report_hierarchy)
> + child_rows = hierarchy_count_rows(browser, he, true);
> +
> + if (he->unfolded) {
> + if (he->leaf)
> + he->nr_rows = callchain__count_rows(&he->sorted_chain);
> + else
> + he->nr_rows = hierarchy_count_rows(browser, he, false);

looks like above condition could go to just following call:

he->nr_rows = hierarchy_count_rows(browser, he, false);

because there's same condtiion in the hierarchy_count_rows function

thanks,
jirka