X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fcpset.c;h=0edffd7f67cc1e3fc4daf6b3c8648c89a879826d;hb=e775a978fff2841e0722c47f13545b54d48b8f98;hp=4f429618bb7965bbd70368449b7433c03f2a8c23;hpb=96a858dc8d505c402eee1c4261bad3feb5247c05;p=libfirm diff --git a/ir/adt/cpset.c b/ir/adt/cpset.c index 4f429618b..0edffd7f6 100644 --- a/ir/adt/cpset.c +++ b/ir/adt/cpset.c @@ -1,3 +1,31 @@ +/* + * 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 + * @version $Id$ + * + * 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 +36,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 @@ -25,18 +56,18 @@ #include "hashset.c" -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); }