+/*
+ * 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 it's elements.
+ */
#include "config.h"
#include "cpset.h"
#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
{
this->hash_function = hash_function;
this->cmp_function = cmp_function;
- _cpset_init(this);
+ cpset_init_(this);
}
void cpset_init_size(cpset_t *this, cpset_hash_function hash_function,
{
this->hash_function = hash_function;
this->cmp_function = cmp_function;
- _cpset_init_size(this, expected_elems);
+ cpset_init_size_(this, expected_elems);
}