| 139 | } |
| 140 | |
| 141 | static const u64 *deduplicate(const tal_t *ctx, const u64 *vals) |
| 142 | { |
| 143 | u64 *sorted; |
| 144 | u64 *dedup; |
| 145 | size_t n; |
| 146 | |
| 147 | /* Sort and remove dups */ |
| 148 | sorted = tal_dup_talarr(tmpctx, u64, vals); |
| 149 | asort(sorted, tal_count(sorted), cmp_u64, NULL); |
| 150 | |
| 151 | dedup = tal_arr(ctx, u64, tal_count(sorted)); |
| 152 | n = 0; |
| 153 | dedup[n++] = sorted[0]; |
| 154 | for (size_t i = 1; i < tal_count(sorted); i++) { |
| 155 | if (sorted[i] == dedup[n-1]) |
| 156 | continue; |
| 157 | dedup[n++] = sorted[i]; |
| 158 | } |
| 159 | tal_resize(&dedup, n); |
| 160 | |
| 161 | return dedup; |
| 162 | } |
| 163 | |
| 164 | static size_t find_index(const u64 *template, u64 val) |
| 165 | { |
no outgoing calls
no test coverage detected