void pdt_free_node(pdt_node_t *pn) { int i; if(pn==NULL) return; for(i=0; i<PDT_NODE_SIZE; i++) { if(pn[i].domain.s!=NULL) { shm_free(pn[i].domain.s); pn[i].domain.s = NULL; pn[i].domain.len = 0; } if(pn[i].child!=NULL) { pdt_free_node(pn[i].child); pn[i].child = NULL; } } shm_free(pn); pn = NULL; return; }
void pdt_free_tree(pdt_tree_t *pt) { if(pt == NULL) { LOG(L_INFO, "pdt_free_tree: bad parameters\n"); return; } pdt_free_node(pt->head); pkg_free(pt); pt = NULL; return; }
void pdt_free_tree(pdt_tree_t *pt) { if(pt == NULL) return; if(pt->head!=NULL) pdt_free_node(pt->head); if(pt->next!=NULL) pdt_free_tree(pt->next); if(pt->sdomain.s!=NULL) shm_free(pt->sdomain.s); shm_free(pt); pt = NULL; return; }