Added a replace function to linked_list_t.

This commit is contained in:
Tobias Brunner
2011-07-06 09:43:45 +02:00
parent fbf014b0c1
commit 0b6ff2a9fe
2 changed files with 24 additions and 0 deletions
+14
View File
@@ -476,6 +476,19 @@ METHOD(linked_list_t, insert_after, void,
insert_item_after(this, enumerator->current, item);
}
METHOD(linked_list_t, replace, void*,
private_linked_list_t *this, private_enumerator_t *enumerator,
void *item)
{
void *old = NULL;
if (enumerator->current)
{
old = enumerator->current->value;
enumerator->current->value = item;
}
return old;
}
METHOD(linked_list_t, get_last, status_t,
private_linked_list_t *this, void **item)
{
@@ -722,6 +735,7 @@ linked_list_t *linked_list_create()
.insert_last = _insert_last,
.insert_after = (void*)_insert_after,
.insert_before = (void*)_insert_before,
.replace = (void*)_replace,
.remove_first = _remove_first,
.remove_last = _remove_last,
.remove = _remove_,