X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fcpset.c;h=c4b85962d521ec6be79195a83da8ac5ae0c78507;hb=d72b7e3a579f396c1820c57179c2c82a596b8811;hp=ce83865a6e3e59fabe473ee35ebd70799f6dce04;hpb=1620656c764bdedba64d6944d24957e6b564bbdb;p=libfirm diff --git a/ir/adt/cpset.c b/ir/adt/cpset.c index ce83865a6..c4b85962d 100644 --- a/ir/adt/cpset.c +++ b/ir/adt/cpset.c @@ -1,4 +1,31 @@ -#include +/* + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +/** + * @file + * @brief Custom pointer set + * @author Matthias Braun + * + * This implements a set of pointers which allows to specify custom callbacks + * for comparing and hashing its elements. + */ +#include "config.h" #include "cpset.h" @@ -8,12 +35,15 @@ #define ValueType void* #define NullValue NULL #define DeletedValue ((void*)-1) -#define Hash(this,value) this->hash_function(value) +#define Hash(this,key) this->hash_function(key) #define KeysEqual(this,key1,key2) this->cmp_function(key1, key2) +#define SCALAR_RETURN #define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof(cpset_hashset_entry_t)) -#define hashset_init _cpset_init -#define hashset_init_size _cpset_init_size +void cpset_init_(cpset_t *self); +#define hashset_init cpset_init_ +void cpset_init_size_(cpset_t *self, size_t expected_elems); +#define hashset_init_size cpset_init_size_ #define hashset_destroy cpset_destroy #define hashset_insert cpset_insert #define hashset_remove cpset_remove @@ -23,20 +53,20 @@ #define hashset_iterator_next cpset_iterator_next #define hashset_remove_iterator cpset_remove_iterator -#include "hashset.c" +#include "hashset.c.inl" -void cpset_init(cpset_t *this, cpset_hash_function hash_function, +void cpset_init(cpset_t *this_, cpset_hash_function hash_function, cpset_cmp_function cmp_function) { - this->hash_function = hash_function; - this->cmp_function = cmp_function; - _cpset_init(this); + this_->hash_function = hash_function; + this_->cmp_function = cmp_function; + cpset_init_(this_); } -void cpset_init_size(cpset_t *this, cpset_hash_function hash_function, +void cpset_init_size(cpset_t *this_, cpset_hash_function hash_function, cpset_cmp_function cmp_function, size_t expected_elems) { - this->hash_function = hash_function; - this->cmp_function = cmp_function; - _cpset_init_size(this, expected_elems); + this_->hash_function = hash_function; + this_->cmp_function = cmp_function; + cpset_init_size_(this_, expected_elems); }