Re: [PATCH 01/17] perf hists: Basic support of hierarchical report view

From: Jiri Olsa
Date: Thu Jan 21 2016 - 05:43:41 EST


On Sun, Jan 17, 2016 at 01:03:01AM +0900, Namhyung Kim wrote:

SNIP

> +}
> +
> +static bool hists__hierarchy_insert_entry(struct hists *hists,
> + struct rb_root *root,
> + struct hist_entry *he)
> +{
> + struct perf_hpp_fmt *fmt;
> + struct hist_entry *new = NULL;
> + struct hist_entry *parent = NULL;
> + int depth = 0;
> +
> + perf_hpp__for_each_sort_list(fmt) {
> + if (!perf_hpp__is_sort_entry(fmt) &&
> + !perf_hpp__is_dynamic_entry(fmt))
> + continue;
> +
> + /* insert copy of 'he' for each fmt into the hierarchy */
> + new = hierarchy_insert_entry(hists, root, he, fmt);
> + if (new == NULL)
> + break;

so hierarchy_insert_entry can fail because of memory allocation
but the resort path does not cover any error path because it only
shuffles entries from in-tree into sorted tree

would it make more sense to do this in 'in-tree addition' path?
and keep the resort functions to do only resort stuff

thanks,
jirka