}
pa_headerlist* pa_headerlist_new(void) {
- return MAKE_HEADERLIST(pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func));
+ return MAKE_HEADERLIST(pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func, NULL, (pa_free_cb_t) header_free));
}
void pa_headerlist_free(pa_headerlist* p) {
- struct header *hdr;
-
- while ((hdr = pa_hashmap_steal_first(MAKE_HASHMAP(p))))
- header_free(hdr);
-
- pa_hashmap_free(MAKE_HASHMAP(p), NULL, NULL);
+ pa_hashmap_free(MAKE_HASHMAP(p));
}
int pa_headerlist_puts(pa_headerlist *p, const char *key, const char *value) {
struct header *hdr;
- pa_bool_t add = FALSE;
+ bool add = false;
pa_assert(p);
pa_assert(key);
if (!(hdr = pa_hashmap_get(MAKE_HASHMAP(p), key))) {
hdr = pa_xnew(struct header, 1);
hdr->key = pa_xstrdup(key);
- add = TRUE;
+ add = true;
} else
pa_xfree(hdr->value);
int pa_headerlist_putsappend(pa_headerlist *p, const char *key, const char *value) {
struct header *hdr;
- pa_bool_t add = FALSE;
+ bool add = false;
pa_assert(p);
pa_assert(key);
hdr = pa_xnew(struct header, 1);
hdr->key = pa_xstrdup(key);
hdr->value = pa_xstrdup(value);
- add = TRUE;
+ add = true;
} else {
void *newval = pa_sprintf_malloc("%s%s", (char*)hdr->value, value);
pa_xfree(hdr->value);