X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firlinkednodeset.c;h=fe17f26a3466cda788fb41417df0674efdfaa937;hb=8711df01fa5919e55a10ac1e8a594bde1a2b6e46;hp=c9b7c3b4103d23e7550722a1daa741159ba306bd;hpb=abbf9492df1993d211412ba520feb81de0688c2a;p=libfirm diff --git a/ir/ir/irlinkednodeset.c b/ir/ir/irlinkednodeset.c index c9b7c3b41..fe17f26a3 100644 --- a/ir/ir/irlinkednodeset.c +++ b/ir/ir/irlinkednodeset.c @@ -21,7 +21,6 @@ * @file * @author Michael Beck * @brief A linked nodeset. - * @version $Id$ */ #include "config.h" @@ -51,9 +50,11 @@ static ir_lnk_nodeset_entry_t null_nodeset_entry; #define hashset_init ir_lnk_nodeset_init #define hashset_init_size ir_lnk_nodeset_init_size #define hashset_destroy ir_lnk_nodeset_destroy -#define hashset_insert _ir_lnk_nodeset_insert +ir_lnk_nodeset_entry_t *ir_lnk_nodeset_insert_(ir_lnk_nodeset_t *nodeset, ir_node *node); +#define hashset_insert ir_lnk_nodeset_insert_ #define hashset_remove ir_lnk_nodeset_remove -#define hashset_find _ir_lnk_nodeset_find +ir_lnk_nodeset_entry_t *ir_lnk_nodeset_find_(const ir_lnk_nodeset_t *nodeset, const ir_node *node); +#define hashset_find ir_lnk_nodeset_find_ #define hashset_size ir_lnk_nodeset_size #define ADDITIONAL_INIT INIT_LIST_HEAD(&self->elem_list); INIT_LIST_HEAD(&self->all_iters); @@ -106,11 +107,9 @@ static void resize(HashSet *self, size_t new_size) 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); + ir_lnk_nodeset_entry_t *entry = ir_lnk_nodeset_insert_(nodeset, node); if (entry->list.next == NULL) { /* we have added a new element */ @@ -122,31 +121,16 @@ int ir_lnk_nodeset_insert(ir_lnk_nodeset_t *nodeset, ir_node *node) int ir_lnk_nodeset_contains(const ir_lnk_nodeset_t *nodeset, const ir_node *node) { - return _ir_lnk_nodeset_find(nodeset, node) != NULL; + 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) { + const ir_lnk_nodeset_t *nodeset) +{ iterator->iter = nodeset->elem_list.next; 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; @@ -159,14 +143,9 @@ ir_node *ir_lnk_nodeset_iterator_next(ir_lnk_nodeset_iterator_t *iterator) 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) { + ir_lnk_nodeset_iterator_t *iterator) +{ ir_lnk_nodeset_entry_t *rem = list_entry(iterator->iter->prev, ir_lnk_nodeset_entry_t, list); ir_lnk_nodeset_remove(nodeset, rem->node);