hashmap: Add extra uncounted entry to returned array from hashmap_dump_sorted()

This allows using the returned array as a strv.
This commit is contained in:
Daan De Meyer
2023-10-20 14:09:32 +02:00
parent cc156539d9
commit b2e9d80956
+4 -1
View File
@@ -2135,7 +2135,9 @@ int _hashmap_dump_sorted(HashmapBase *h, void ***ret, size_t *ret_n) {
return 0;
}
entries = new(struct hashmap_base_entry*, _hashmap_size(h));
/* We append one more element than needed so that the resulting array can be used as a strv. We
* don't count this entry in the returned size. */
entries = new(struct hashmap_base_entry*, _hashmap_size(h) + 1);
if (!entries)
return -ENOMEM;
@@ -2143,6 +2145,7 @@ int _hashmap_dump_sorted(HashmapBase *h, void ***ret, size_t *ret_n) {
entries[n++] = bucket_at(h, idx);
assert(n == _hashmap_size(h));
entries[n] = NULL;
typesafe_qsort_r(entries, n, hashmap_entry_compare, h->hash_ops->compare);