/*
- * Copyright (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.
*
* @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) {
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;
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;
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;
}
}
-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);
}
}
}
-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);
}
}
}
-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);
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);
++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)) {
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)) {
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;
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) {