Hi Jiri, On Sat, Jan 23, 2016 at 06:01:10PM +0100, Jiri Olsa wrote: > On Fri, Jan 22, 2016 at 10:41:36PM +0900, Namhyung Kim wrote: > > SNIP > > > /* lookup in childrens */ > > while (*p) { > > - s64 ret; > > + enum match_result ret; > > > > parent = *p; > > rnode = rb_entry(parent, struct callchain_node, rb_node_in); > > > > /* If at least first entry matches, rely to children */ > > ret = append_chain(rnode, cursor, period); > > - if (ret == 0) > > + if (ret == MATCH_EQ) > > goto inc_children_hit; > > > > - if (ret < 0) > > + if (ret == MATCH_LT) > > p = &parent->rb_left; > > else > > p = &parent->rb_right; > > so if we want to use the return values like that you > probably missed 2 other places
Right! > > > --- > diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c > index 7139d438ee6d..dc08e76aa8d9 100644 > --- a/tools/perf/util/callchain.c > +++ b/tools/perf/util/callchain.c > @@ -565,7 +565,7 @@ split_add_child(struct callchain_node *parent, > cnode = list_first_entry(&first->val, struct callchain_list, > list); > > - if (match_chain(node, cnode) < 0) > + if (match_chain(node, cnode) == MATCH_LT) > pp = &p->rb_left; > else > pp = &p->rb_right; > @@ -652,7 +652,7 @@ append_chain(struct callchain_node *root, > break; > > cmp = match_chain(node, cnode); > - if (cmp) > + if (cmp != MATCH_EQ) This has same effect since I chose 0 for MATCH_EQ intentionally. But yes, it'd be better making it explicit. Will change. Thanks, Namhyung > break; > > found = true;