/* * Destroy the xports structure. */ void asn1p_xports_free(asn1p_xports_t *xp) { if(xp) { asn1p_expr_t *expr; free(xp->fromModuleName); asn1p_oid_free(xp->identifier.oid); while((expr = TQ_REMOVE(&(xp->xp_members), next))) asn1p_expr_free(expr); free(xp); } }
/* * Destroy the module. */ void asn1p_module_free(asn1p_module_t *mod) { if(mod) { asn1p_expr_t *expr; asn1p_xports_t *xports; free(mod->ModuleName); free(mod->source_file_name); asn1p_oid_free(mod->module_oid); while((xports = TQ_REMOVE(&(mod->exports), xp_next))) asn1p_xports_free(xports); while((xports = TQ_REMOVE(&(mod->imports), xp_next))) asn1p_xports_free(xports); while((expr = TQ_REMOVE(&(mod->members), next))) asn1p_expr_free(expr); free(mod); } }