On Thu, 21 May 2015 13:30:08 -0400 Josef Bacik <jba...@fb.com> wrote:
> +static int compare_groups(const void *a, const void *b) > +{ > + const char *A = a; > + const char *B = b; > + > + return strcmp(A, B); a and b are not strings here. They are group_data pointers. I think what you want is this: static int compare_groups(const void *a, const void *b) { struct group_data * const *A = a; struct group_data * const *B = b; return strcmp((*A)->comm, (*B)->comm); } -- Steve > +} > + > > +static void output_groups(struct handle_data *h) > +{ > + struct trace_hash_item **bucket; > + struct trace_hash_item *item; > + struct group_data **groups; > + int nr_groups = 0; > + int i; > + > + trace_hash_for_each_bucket(bucket, &h->group_hash) { > + trace_hash_for_each_item(item, bucket) { > + nr_groups++; > + } > + } > + > + if (nr_groups == 0) > + return; > + > + groups = malloc_or_die(sizeof(*groups) * nr_groups); > + > + nr_groups = 0; > + > + trace_hash_for_each_bucket(bucket, &h->group_hash) { > + trace_hash_while_item(item, bucket) { > + groups[nr_groups++] = group_from_item(item); > + trace_hash_del(item); > + } > + } > + > + qsort(groups, nr_groups, sizeof(*groups), compare_groups); > + > + for (i = 0; i < nr_groups; i++) { > + output_group(h, groups[i]); > + free_group(groups[i]); > + } > + > + free(groups); > +} > + > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/