Messages in this thread | | | Date | Sun, 24 Jan 2016 13:05:11 +0900 | From | Namhyung Kim <> | Subject | Re: [PATCH 3/7] perf callchain: Add enum match_result for match_chain() |
| |
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;
| |