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