* @file
* @author Michael Beck
* @brief A linked nodeset.
- * @version $Id$
*/
#include "config.h"
#define ADDITIONAL_INIT INIT_LIST_HEAD(&self->elem_list); INIT_LIST_HEAD(&self->all_iters);
#define ADDITIONAL_TERM INIT_LIST_HEAD(&self->elem_list); INIT_LIST_HEAD(&self->all_iters);
-#define NO_ITERATOR
#define HAVE_OWN_RESIZE
-#include "hashset.c"
+#include "hashset.c.inl"
/**
* Resize the hashset
Free(old_entries);
}
-
-/* Inserts a node into a linked nodeset. */
int ir_lnk_nodeset_insert(ir_lnk_nodeset_t *nodeset, ir_node *node)
{
ir_lnk_nodeset_entry_t *entry = ir_lnk_nodeset_insert_(nodeset, node);
return ir_lnk_nodeset_find_(nodeset, node) != NULL;
}
-/**
- * Initializes a nodeset iterator. Sets the iterator before the first element in
- * the linked nodeset.
- *
- * @param iterator Pointer to already allocated iterator memory
- * @param nodeset Pointer to the nodeset
- */
void ir_lnk_nodeset_iterator_init(ir_lnk_nodeset_iterator_t *iterator,
const ir_lnk_nodeset_t *nodeset)
{
iterator->nodeset = nodeset;
}
-/**
- * Advances the iterator and returns the current element or NULL if all elements
- * in the linked nodeset have been processed.
- * @attention It is not allowed to use ir_lnk_nodeset_insert or ir_lnk_nodeset_remove while
- * iterating over a nodeset.
- *
- * @param iterator Pointer to the nodeset iterator.
- * @returns Next element in the nodeset or NULL
- */
ir_node *ir_lnk_nodeset_iterator_next(ir_lnk_nodeset_iterator_t *iterator)
{
ir_node *res;
return res;
}
-/**
- * Removes the element the iterator currently points to.
- *
- * @param nodeset Pointer to the linked nodeset
- * @param iterator Pointer to the nodeset iterator.
- */
void ir_lnk_nodeset_remove_iterator(ir_lnk_nodeset_t *nodeset,
ir_lnk_nodeset_iterator_t *iterator)
{