X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fplist.c;h=622e23b5ba14257739e57841d7251eb9de524808;hb=0decb677fb069c9d47f5285f12fdb983dca7fdae;hp=7016f57d59b9f476e37a3b391e506d01c6fe7a86;hpb=7fcb4d9c30486692cb865fc889d8d0770abae6d8;p=libfirm diff --git a/ir/adt/plist.c b/ir/adt/plist.c index 7016f57d5..622e23b5b 100644 --- a/ir/adt/plist.c +++ b/ir/adt/plist.c @@ -147,6 +147,28 @@ 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) { + plist_element_t *iter; + + for (iter = plist_first(list); iter; iter = plist_element_get_next(iter)) { + if (plist_element_get_value(iter) == value) + return 1; + } + + return 0; +} + +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)) { + if (plist_element_get_value(iter) == value) + return iter; + } + + return NULL; +} + void plist_erase(plist_t *list, plist_element_t *element) { plist_element_t *next_element = element->next; plist_element_t *prev_element = element->prev;