diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-09-18 08:58:42 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-09-19 08:05:13 +0900 |
commit | ba0a7bfb983305ac7f86db1e7bbfeb456e11bbd8 (patch) | |
tree | 27da10cab2e1d123ca198321c7d2a76cd80eb10a /src | |
parent | 5532395be7aecae768afd96d37a30834167711a0 (diff) | |
download | systemd-ba0a7bfb983305ac7f86db1e7bbfeb456e11bbd8.tar.gz systemd-ba0a7bfb983305ac7f86db1e7bbfeb456e11bbd8.tar.bz2 systemd-ba0a7bfb983305ac7f86db1e7bbfeb456e11bbd8.zip |
tree-wide: use typesafe_qsort_r()
Diffstat (limited to 'src')
-rw-r--r-- | src/basic/format-table.c | 13 | ||||
-rw-r--r-- | src/hwdb/hwdb.c | 14 | ||||
-rw-r--r-- | src/udev/udevadm-hwdb.c | 14 |
3 files changed, 13 insertions, 28 deletions
diff --git a/src/basic/format-table.c b/src/basic/format-table.c index 8ef278248d..e30460eab6 100644 --- a/src/basic/format-table.c +++ b/src/basic/format-table.c @@ -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) diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c index 913cefaec6..d9a6d8390d 100644 --- a/src/hwdb/hwdb.c +++ b/src/hwdb/hwdb.c @@ -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; } diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c index 3e9a194532..55bd0602bc 100644 --- a/src/udev/udevadm-hwdb.c +++ b/src/udev/udevadm-hwdb.c @@ -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; } |