void accp_info_destroy(accp_info_t *ainfo) { for (int i = 0; i < ainfo->arr_prop->nelts; i++) { proposal_t *prop = ((proposal_t**) ainfo->arr_prop->elts)[i]; prop_free(prop); } apr_thread_mutex_destroy(ainfo->mx); apr_pool_destroy(ainfo->mp); free(ainfo); }
/* Frees a block created with block_new. All data contained inside the block * is also destroyed. */ void block_free(struct block *b) { int i; if (b->b_name != NULL) free(b->b_name); for (i = 0; i < b->b_prop_count; i++) prop_free(b->b_prop[i]); for (i = 0; i < b->b_child_count; i++) block_free(b->b_child[i]); free(b); }
void caldav_free(struct caldav *p) { size_t i; if (NULL == p) return; for (i = 0; i < p->propsz; i++) prop_free(&p->props[i]); for (i = 0; i < p->hrefsz; i++) free(p->hrefs[i]); free(p->props); free(p->hrefs); free(p); }