From a8b9a2c153c2a5551344a20b2874e0c0d8355d81 Mon Sep 17 00:00:00 2001 From: Al Date: Wed, 6 Jan 2016 23:01:00 -0500 Subject: [PATCH] [fix] making *_hash_sort_keys_by_value static --- src/collections.h | 62 +++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/collections.h b/src/collections.h index 931957c0..7d452832 100644 --- a/src/collections.h +++ b/src/collections.h @@ -53,37 +53,37 @@ KSORT_INIT_STR // Sort by value (must be defined after the vectors) -#define KHASH_SORT_BY_VALUE(name, key_type, val_type, val_array_name) \ - key_type *name##_hash_sort_keys_by_value(khash_t(name) *h, bool reversed) { \ - size_t n = kh_size(h); \ - key_type *keys = malloc(sizeof(key_type) * n); \ - val_type *values = malloc(sizeof(val_type) * n); \ - \ - size_t i = 0; \ - const key_type key; \ - val_type value; \ - kh_foreach(h, key, value, { \ - values[i] = value; \ - i++; \ - }) \ - \ - size_t *sorted_indices = val_array_name##_argsort(values, n); \ - key_type *sorted_keys = malloc(sizeof(key_type) * n); \ - \ - if (!reversed) { \ - for (i = 0; i < n; i++) { \ - sorted_keys[i] = keys[sorted_indices[i]]; \ - } \ - } else { \ - for (i = n; i >= 0; i--) { \ - sorted_keys[i] = keys[sorted_indices[i]]; \ - } \ - } \ - \ - free(keys); \ - free(values); \ - free(sorted_indices); \ - return sorted_keys; \ +#define KHASH_SORT_BY_VALUE(name, key_type, val_type, val_array_name) \ + static key_type *name##_hash_sort_keys_by_value(khash_t(name) *h, bool reversed) { \ + size_t n = kh_size(h); \ + key_type *keys = malloc(sizeof(key_type) * n); \ + val_type *values = malloc(sizeof(val_type) * n); \ + \ + size_t i = 0; \ + const key_type key; \ + val_type value; \ + kh_foreach(h, key, value, { \ + values[i] = value; \ + i++; \ + }) \ + \ + size_t *sorted_indices = val_array_name##_argsort(values, n); \ + key_type *sorted_keys = malloc(sizeof(key_type) * n); \ + \ + if (!reversed) { \ + for (i = 0; i < n; i++) { \ + sorted_keys[i] = keys[sorted_indices[i]]; \ + } \ + } else { \ + for (i = n; i >= 0; i--) { \ + sorted_keys[i] = keys[sorted_indices[i]]; \ + } \ + } \ + \ + free(keys); \ + free(values); \ + free(sorted_indices); \ + return sorted_keys; \ } KHASH_SORT_BY_VALUE(str_uint32, char *, uint32_t, uint32_array)