return ret;
 }
 
-static int disasm__cmp(struct annotation_line *a,
-                      struct annotation_line *b, int nr_pcnt)
+static int disasm__cmp(struct annotation_line *a, struct annotation_line *b)
 {
        int i;
 
-       for (i = 0; i < nr_pcnt; i++) {
+       for (i = 0; i < a->samples_nr; i++) {
                if (a->samples[i].percent == b->samples[i].percent)
                        continue;
                return a->samples[i].percent < b->samples[i].percent;
        return 0;
 }
 
-static void disasm_rb_tree__insert(struct rb_root *root, struct annotation_line *al,
-                                  int nr_events)
+static void disasm_rb_tree__insert(struct rb_root *root, struct annotation_line *al)
 {
        struct rb_node **p = &root->rb_node;
        struct rb_node *parent = NULL;
                parent = *p;
                l = rb_entry(parent, struct annotation_line, rb_node);
 
-               if (disasm__cmp(al, l, nr_events))
+               if (disasm__cmp(al, l))
                        p = &(*p)->rb_left;
                else
                        p = &(*p)->rb_right;
                        continue;
                }
 
-               for (i = 0; i < browser->nr_events; i++) {
+               for (i = 0; i < pos->al.samples_nr; i++) {
                        struct annotation_data *sample = &pos->al.samples[i];
 
                        if (max_percent < sample->percent)
                        RB_CLEAR_NODE(&pos->al.rb_node);
                        continue;
                }
-               disasm_rb_tree__insert(&browser->entries, &pos->al,
-                                      browser->nr_events);
+               disasm_rb_tree__insert(&browser->entries, &pos->al);
        }
        pthread_mutex_unlock(¬es->lock);