X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fplist.c;h=fae710a9c1c69aa257dc1b62c11faea2f56189a8;hb=c795dad1d14f1b54dd32a6107ac26a22c089c957;hp=af3bbabeba7eb1198fe7e5a780d92f1a11ecec93;hpb=57d365a67aaef76497b85e9a18b785c562652b16;p=libfirm diff --git a/ir/adt/plist.c b/ir/adt/plist.c index af3bbabeb..fae710a9c 100644 --- a/ir/adt/plist.c +++ b/ir/adt/plist.c @@ -1,5 +1,5 @@ /* - * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -18,16 +18,15 @@ */ /** - * Simple, non circular, double linked pointer list. - * Created because the properties of the standard circular list were not - * very well suited for the interference graph implementation. - * This list uses an obstack and a free-list to efficiently manage its - * elements. - * @author Kimon Hoffmann - * @date 14.07.2005 - * @cvs-id $Id$ - * @note Until now the code is entirely untested so it probably contains - * plenty of errors. + * @file + * @brief Simple, non circular, double linked pointer list. + * @note Created because the properties of the standard circular list were not + * very well suited for the interference graph implementation. + * This list uses an obstack and a free-list to efficiently manage its + * elements. + * @author Kimon Hoffmann + * @date 14.07.2005 + * @version $Id$ */ #include @@ -40,7 +39,8 @@ * @param list the list for which to allocate the element. * @return the newly allocated, uninitialized element. */ -static plist_element_t *allocate_element(plist_t* list) { +static plist_element_t *allocate_element(plist_t* list) +{ plist_element_t *new_element; if (list->first_free_element != NULL) { @@ -49,14 +49,15 @@ static plist_element_t *allocate_element(plist_t* list) { new_element->next = NULL; } else { - new_element = obstack_alloc(list->obst, sizeof(*new_element)); + new_element = OALLOC(list->obst, plist_element_t); } return new_element; } -plist_t *plist_new(void) { - plist_t *list = xmalloc(sizeof(*list) + sizeof(*list->obst)); +plist_t *plist_new(void) +{ + plist_t *list = (plist_t*) xmalloc(sizeof(*list) + sizeof(*list->obst)); list->obst = (struct obstack *)&list[1]; list->foreign_obstack = 0; @@ -69,8 +70,9 @@ plist_t *plist_new(void) { return list; } -plist_t *plist_obstack_new(struct obstack *obst) { - plist_t *list = obstack_alloc(obst, sizeof(*list)); +plist_t *plist_obstack_new(struct obstack *obst) +{ + plist_t *list = OALLOC(obst, plist_t); list->obst = obst; list->foreign_obstack = 1; @@ -82,7 +84,8 @@ plist_t *plist_obstack_new(struct obstack *obst) { return list; } -void plist_free(plist_t *list) { +void plist_free(plist_t *list) +{ list->first_element = NULL; list->last_element = NULL; list->first_free_element = NULL; @@ -94,7 +97,8 @@ void plist_free(plist_t *list) { } } -void plist_insert_back(plist_t *list, void *value) { +void plist_insert_back(plist_t *list, void *value) +{ if (list->last_element != NULL) { plist_insert_after(list, list->last_element, value); } @@ -109,7 +113,8 @@ void plist_insert_back(plist_t *list, void *value) { } } -void plist_insert_front(plist_t *list, void *value) { +void plist_insert_front(plist_t *list, void *value) +{ if (list->first_element != NULL) { plist_insert_before(list, list->first_element, value); } @@ -124,7 +129,8 @@ void plist_insert_front(plist_t *list, void *value) { } } -void plist_insert_before(plist_t *list, plist_element_t *element, void *value) { +void plist_insert_before(plist_t *list, plist_element_t *element, void *value) +{ plist_element_t *prevElement; plist_element_t *newElement = allocate_element(list); @@ -140,11 +146,12 @@ void plist_insert_before(plist_t *list, plist_element_t *element, void *value) { list->first_element = newElement; } - element->prev = newElement; + element->prev = newElement; ++list->element_count; } -void plist_insert_after(plist_t* list, plist_element_t* element, void* value) { +void plist_insert_after(plist_t* list, plist_element_t* element, void* value) +{ plist_element_t *nextElement; plist_element_t *newElement = allocate_element(list); @@ -164,7 +171,8 @@ void plist_insert_after(plist_t* list, plist_element_t* element, void* value) { ++list->element_count; } -int plist_has_value(plist_t *list, void *value) { +int plist_has_value(plist_t *list, void *value) +{ plist_element_t *iter; for (iter = plist_first(list); iter; iter = plist_element_get_next(iter)) { @@ -175,7 +183,8 @@ int plist_has_value(plist_t *list, void *value) { return 0; } -plist_element_t *plist_find_value(plist_t *list, void *value) { +plist_element_t *plist_find_value(plist_t *list, void *value) +{ plist_element_t *iter; for (iter = plist_first(list); iter; iter = plist_element_get_next(iter)) { @@ -186,7 +195,8 @@ plist_element_t *plist_find_value(plist_t *list, void *value) { return NULL; } -void plist_erase(plist_t *list, plist_element_t *element) { +void plist_erase(plist_t *list, plist_element_t *element) +{ plist_element_t *next_element = element->next; plist_element_t *prev_element = element->prev; @@ -212,7 +222,8 @@ void plist_erase(plist_t *list, plist_element_t *element) { list->first_free_element = element; } -void plist_clear(plist_t *list) { +void plist_clear(plist_t *list) +{ plist_element_t *curr_element = list->first_element; while (curr_element != NULL) {