void KDTree_delete(KDTree* self) { if (self) { KDTree_delete(self->left); KDTree_delete(self->right); // TODO: KDTreeDomain_delete(self->dr)? free(self); } }
void MultiMatch_delete(MultiMatch* self) { if (self) { ArrayList_delete(self->keySets); KDTree_delete(self->globalKeyKD); ArrayList_delete(self->globalKeys); ArrayList_delete(self->globalMatches); PtrMap_delete(self->matchSets, NULL); ArrayList_delete(self->filteredMatchSets); free(self); } }