From 0a899661f5f31bc2174c795cedeb1f294a92389c Mon Sep 17 00:00:00 2001 From: Marek Vavrusa <marek.vavrusa@nic.cz> Date: Mon, 18 Feb 2013 15:14:29 +0100 Subject: [PATCH] Removed deprecated general tree. --- Knot.files | 2 - src/Makefile.am | 2 - src/common/general-tree.c | 216 -------------------------------------- src/common/general-tree.h | 73 ------------- 4 files changed, 293 deletions(-) delete mode 100644 src/common/general-tree.c delete mode 100644 src/common/general-tree.h diff --git a/Knot.files b/Knot.files index 177609eeb..c0e3f7b84 100644 --- a/Knot.files +++ b/Knot.files @@ -105,8 +105,6 @@ src/common/crc.h src/common/ref.c src/common/ref.h src/common/modified_tree.h -src/common/general-tree.h -src/common/general-tree.c src/common/dSFMT.c src/common/dSFMT.h src/common/dSFMT-params.h diff --git a/src/Makefile.am b/src/Makefile.am index 56c80ddf1..c2a07157c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -147,8 +147,6 @@ libknots_la_SOURCES = \ common/skip-list.c \ common/base32hex.c \ common/skip-list.h \ - common/general-tree.h \ - common/general-tree.c \ common/tree.h \ common/base32hex.h \ common/evqueue.h \ diff --git a/src/common/general-tree.c b/src/common/general-tree.c deleted file mode 100644 index 1edd0f3d0..000000000 --- a/src/common/general-tree.c +++ /dev/null @@ -1,216 +0,0 @@ -/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include "common/general-tree.h" - -MOD_TREE_DEFINE(general_tree_node, avl); - -static void gen_rem_func(struct general_tree_node *n1) -{ - free(n1); -} - -general_tree_t *gen_tree_new(int (*comp_func)(void *, void *)) -{ - general_tree_t *ret = malloc(sizeof(general_tree_t)); - if (ret == NULL) { - return NULL; - } - ret->tree = malloc(sizeof(general_avl_tree_t)); - if (ret->tree == NULL) { - free(ret); - return NULL; - } - MOD_TREE_INIT(ret->tree, comp_func); - return ret; -} - -int gen_tree_add(general_tree_t *tree, - void *node, int (*mrg_func)(void **n1, void **n2)) -{ - struct general_tree_node *tree_node = - malloc(sizeof(struct general_tree_node)); - if (tree_node == NULL) { - return -1; - } - memset(tree_node, 0, sizeof(struct general_tree_node)); - tree_node->data = node; - int merged = 0; - MOD_TREE_INSERT(tree->tree, general_tree_node, avl, - tree_node, mrg_func, &merged); - if (merged) { - free(tree_node); - } - return merged; -} - -void gen_tree_remove(general_tree_t *tree, - void *what) -{ - struct general_tree_node tree_node; - tree_node.data = what; - MOD_TREE_REMOVE(tree->tree, general_tree_node, avl, &tree_node, - gen_rem_func); -} - -void *gen_tree_find(general_tree_t *tree, - void *what) -{ - struct general_tree_node tree_node; - tree_node.data = what; - struct general_tree_node *found_node = - MOD_TREE_FIND(tree->tree, general_tree_node, avl, &tree_node); - if (found_node) { - return found_node->data; - } else { - return NULL; - } -} - -int gen_tree_find_less_or_equal(general_tree_t *tree, - void *what, - void **found) -{ - if (tree == NULL || tree->tree == NULL) { - return -1; - } - - /* Check if tree is empty. */ - if (tree->tree->th_root == NULL) { - *found = NULL; - return 0; - } - - struct general_tree_node *f = NULL, *prev = NULL; - struct general_tree_node tree_node; - tree_node.data = what; - int exact_match = - MOD_TREE_FIND_LESS_EQUAL(tree->tree, general_tree_node, avl, - &tree_node, &f, &prev); - if (exact_match < 0) { - *found = NULL; - exact_match = 0; - } else if (exact_match == 0) { - assert(prev != NULL); - *found = prev->data; - } else { - assert(f != NULL); - *found = f->data; - } -// *found = (exact_match > 0) ? f->data : prev->data; - return exact_match; -} - -void gen_tree_apply_inorder(general_tree_t *tree, - void (*app_func) - (void *node, void *data), void *data) -{ - MOD_TREE_FORWARD_APPLY(tree->tree, general_tree_node, avl, - app_func, data); -} - -void gen_tree_destroy(general_tree_t **tree, - void (*dest_func)(void *node, void *data), void *data) -{ -// gen_tree_apply_inorder(*tree, print_node, NULL); - MOD_TREE_DESTROY((*tree)->tree, general_tree_node, avl, dest_func, - gen_rem_func, data); - free((*tree)->tree); - free(*tree); - *tree = NULL; -} - -void gen_tree_clear(general_tree_t *tree) -{ - MOD_TREE_DESTROY(tree->tree, general_tree_node, avl, NULL, - gen_rem_func, NULL); - tree->tree->th_root = NULL; /* Invalidate tree root. */ -} - -//static void add_node_to_tree(void *n, void *data) -//{ -// general_tree_t *tree = (general_tree_t *)data; -// gen_tree_add(tree, n, NULL); -//} - -static int gen_tree_copy_node(const struct general_tree_node *from, - struct general_tree_node **to) -{ - if (from == NULL) { - return 0; - } - - *to = malloc(sizeof(struct general_tree_node)); - if (*to == NULL) { - return -1; - } - memset(*to, 0, sizeof(struct general_tree_node)); - - (*to)->data = from->data; - (*to)->avl.avl_height = from->avl.avl_height; - - int ret = gen_tree_copy_node(from->avl.avl_left, - &(*to)->avl.avl_left); - if (ret != 0) { - return ret; - } - - ret = gen_tree_copy_node(from->avl.avl_right, - &(*to)->avl.avl_right); - if (ret != 0) { - /*! \todo Partially cleaunp tree! */ - (*to)->avl.avl_left = NULL; - return ret; - } - - return 0; -} - -general_tree_t *gen_tree_shallow_copy(general_tree_t *tree) -{ - general_tree_t *new_tree = malloc(sizeof(general_tree_t)); - if (new_tree == NULL) { - return NULL; - } - new_tree->tree = malloc(sizeof(general_avl_tree_t)); - if (new_tree->tree == NULL) { - free(new_tree); - return NULL; - } - - MOD_TREE_INIT(new_tree->tree, tree->tree->th_cmp); - assert(new_tree->tree->th_cmp == tree->tree->th_cmp); - -// gen_tree_apply_inorder(tree, add_node_to_tree, new_tree); - - if (gen_tree_copy_node(tree->tree->th_root, - &new_tree->tree->th_root) != 0) { - free(new_tree); - return NULL; - } - - /* CLEANUP */ -// gen_tree_apply_inorder(tree, print_node, NULL); -// printf("--------------------------\n"); -// gen_tree_apply_inorder(new_tree, print_node, NULL); - - return new_tree; -} - diff --git a/src/common/general-tree.h b/src/common/general-tree.h deleted file mode 100644 index 552638a27..000000000 --- a/src/common/general-tree.h +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef _KNOTD_COMMON_GENERAL_TREE_H_ -#define _KNOTD_COMMON_GENERAL_TREE_H_ - -#include "common/modified_tree.h" - -typedef MOD_TREE_HEAD(tree, general_tree_node) general_avl_tree_t; - -/* Define tree with void * nodes */ -struct general_tree_node { - MOD_TREE_ENTRY(general_tree_node) avl; -// int (*cmp_func)(void *n1, -// void *n2); -// int (*mrg_func)(void **n1, -// void **n2); -// void (*app_func)(void *n, -// void *data); - void *data; -}; - -struct general_tree { -// int (*cmp_func)(void *n1, -// void *n2); -// int (*mrg_func)(void **n1, -// void **n2); - general_avl_tree_t *tree; -}; - -typedef struct general_tree general_tree_t; - -general_tree_t *gen_tree_new(int (*cmp_func)(void *p1, void *p2)); - -int gen_tree_add(general_tree_t *tree, - void *node, - int (*mrg_func)(void **n1, void **n2)); - -void *gen_tree_find(general_tree_t *tree, - void *what); - -void gen_tree_remove(general_tree_t *tree, - void *what); - -void gen_tree_apply_inorder(general_tree_t *tree, - void (*app_func)(void *node, void *data), - void *data); - -void gen_tree_destroy(general_tree_t **tree, - void (*dest_func)(void *node, void *data), void *data); - -void gen_tree_clear(general_tree_t *tree); - -int gen_tree_find_less_or_equal(general_tree_t *tree, - void *what, - void **found); - -general_tree_t *gen_tree_shallow_copy(general_tree_t *tree); - -#endif // _KNOTD_COMMON_GENERAL_TREE_H_ -- GitLab