tree-wide: use typesafe_qsort_r()

This commit is contained in:
Yu Watanabe 2018-09-18 08:58:42 +09:00
parent 5532395be7
commit ba0a7bfb98
3 changed files with 13 additions and 28 deletions

View File

@ -729,9 +729,7 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
return 0;
}
static int table_data_compare(const void *x, const void *y, void *userdata) {
const size_t *a = x, *b = y;
Table *t = userdata;
static int table_data_compare(const size_t *a, const size_t *b, Table *t) {
size_t i;
int r;
@ -759,12 +757,7 @@ static int table_data_compare(const void *x, const void *y, void *userdata) {
}
/* Order identical lines by the order there were originally added in */
if (*a < *b)
return -1;
if (*a > *b)
return 1;
return 0;
return CMP(*a, *b);
}
static const char *table_data_format(TableData *d) {
@ -944,7 +937,7 @@ int table_print(Table *t, FILE *f) {
for (i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns;
qsort_r_safe(sorted, n_rows, sizeof(size_t), table_data_compare, t);
typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
}
if (t->display_map)

View File

@ -133,13 +133,9 @@ static void trie_free(struct trie *trie) {
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
static int trie_values_cmp(const void *v1, const void *v2, void *arg) {
const struct trie_value_entry *val1 = v1;
const struct trie_value_entry *val2 = v2;
struct trie *trie = arg;
return strcmp(trie->strings->buf + val1->key_off,
trie->strings->buf + val2->key_off);
static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
return strcmp(trie->strings->buf + a->key_off,
trie->strings->buf + b->key_off);
}
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@ -164,7 +160,7 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.value_off = v,
};
val = xbsearch_r(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie);
val = xbsearch_r(&search, node->values, node->values_count, sizeof(struct trie_value_entry), (__compar_d_fn_t) trie_values_cmp, trie);
if (val) {
/* At this point we have 2 identical properties on the same match-string.
* Since we process files in order, we just replace the previous value.
@ -189,7 +185,7 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
node->values[node->values_count].file_priority = file_priority;
node->values[node->values_count].line_number = line_number;
node->values_count++;
qsort_r(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie);
typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
return 0;
}

View File

@ -132,13 +132,9 @@ static void trie_free(struct trie *trie) {
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
static int trie_values_cmp(const void *v1, const void *v2, void *arg) {
const struct trie_value_entry *val1 = v1;
const struct trie_value_entry *val2 = v2;
struct trie *trie = arg;
return strcmp(trie->strings->buf + val1->key_off,
trie->strings->buf + val2->key_off);
static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
return strcmp(trie->strings->buf + a->key_off,
trie->strings->buf + b->key_off);
}
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@ -159,7 +155,7 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.value_off = v,
};
val = xbsearch_r(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie);
val = xbsearch_r(&search, node->values, node->values_count, sizeof(struct trie_value_entry), (__compar_d_fn_t) trie_values_cmp, trie);
if (val) {
/* replace existing earlier key with new value */
val->value_off = v;
@ -176,7 +172,7 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
node->values[node->values_count].key_off = k;
node->values[node->values_count].value_off = v;
node->values_count++;
qsort_r(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie);
typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
return 0;
}