linked-list: Remove barely used find_last() method
This commit is contained in:
@@ -2022,7 +2022,7 @@ METHOD(kernel_ipsec_t, add_policy, status_t,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* apply the new one, if we have no such policy */
|
/* apply the new one, if we have no such policy */
|
||||||
this->policies->insert_last(this->policies, policy);
|
this->policies->insert_first(this->policies, policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priority == POLICY_PRIORITY_ROUTED)
|
if (priority == POLICY_PRIORITY_ROUTED)
|
||||||
@@ -2088,7 +2088,8 @@ METHOD(kernel_ipsec_t, add_policy, status_t,
|
|||||||
this->mutex->lock(this->mutex);
|
this->mutex->lock(this->mutex);
|
||||||
|
|
||||||
/* we try to find the policy again and install the route if needed */
|
/* we try to find the policy again and install the route if needed */
|
||||||
if (this->policies->find_last(this->policies, NULL, (void**)&policy) != SUCCESS)
|
if (this->policies->find_first(this->policies, NULL,
|
||||||
|
(void**)&policy) != SUCCESS)
|
||||||
{
|
{
|
||||||
this->mutex->unlock(this->mutex);
|
this->mutex->unlock(this->mutex);
|
||||||
DBG2(DBG_KNL, "the policy %R === %R %N is already gone, ignoring",
|
DBG2(DBG_KNL, "the policy %R === %R %N is already gone, ignoring",
|
||||||
|
|||||||
@@ -2261,8 +2261,8 @@ static status_t add_policy_internal(private_kernel_pfkey_ipsec_t *this,
|
|||||||
|
|
||||||
/* we try to find the policy again and update the kernel index */
|
/* we try to find the policy again and update the kernel index */
|
||||||
this->mutex->lock(this->mutex);
|
this->mutex->lock(this->mutex);
|
||||||
if (this->policies->find_last(this->policies, NULL,
|
if (this->policies->find_first(this->policies, NULL,
|
||||||
(void**)&policy) != SUCCESS)
|
(void**)&policy) != SUCCESS)
|
||||||
{
|
{
|
||||||
DBG2(DBG_KNL, "unable to update index, the policy is already gone, "
|
DBG2(DBG_KNL, "unable to update index, the policy is already gone, "
|
||||||
"ignoring");
|
"ignoring");
|
||||||
@@ -2319,7 +2319,7 @@ METHOD(kernel_ipsec_t, add_policy, status_t,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /* use the new one, if we have no such policy */
|
{ /* use the new one, if we have no such policy */
|
||||||
this->policies->insert_last(this->policies, policy);
|
this->policies->insert_first(this->policies, policy);
|
||||||
policy->used_by = linked_list_create();
|
policy->used_by = linked_list_create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -395,28 +395,6 @@ METHOD(linked_list_t, find_first, status_t,
|
|||||||
return NOT_FOUND;
|
return NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(linked_list_t, find_last, status_t,
|
|
||||||
private_linked_list_t *this, linked_list_match_t match,
|
|
||||||
void **item, void *d1, void *d2, void *d3, void *d4, void *d5)
|
|
||||||
{
|
|
||||||
element_t *current = this->last;
|
|
||||||
|
|
||||||
while (current)
|
|
||||||
{
|
|
||||||
if ((match && match(current->value, d1, d2, d3, d4, d5)) ||
|
|
||||||
(!match && item && current->value == *item))
|
|
||||||
{
|
|
||||||
if (item != NULL)
|
|
||||||
{
|
|
||||||
*item = current->value;
|
|
||||||
}
|
|
||||||
return SUCCESS;
|
|
||||||
}
|
|
||||||
current = current->previous;
|
|
||||||
}
|
|
||||||
return NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
METHOD(linked_list_t, invoke_offset, void,
|
METHOD(linked_list_t, invoke_offset, void,
|
||||||
private_linked_list_t *this, size_t offset,
|
private_linked_list_t *this, size_t offset,
|
||||||
void *d1, void *d2, void *d3, void *d4, void *d5)
|
void *d1, void *d2, void *d3, void *d4, void *d5)
|
||||||
@@ -538,7 +516,6 @@ linked_list_t *linked_list_create()
|
|||||||
.get_first = _get_first,
|
.get_first = _get_first,
|
||||||
.get_last = _get_last,
|
.get_last = _get_last,
|
||||||
.find_first = (void*)_find_first,
|
.find_first = (void*)_find_first,
|
||||||
.find_last = (void*)_find_last,
|
|
||||||
.insert_first = _insert_first,
|
.insert_first = _insert_first,
|
||||||
.insert_last = _insert_last,
|
.insert_last = _insert_last,
|
||||||
.insert_before = (void*)_insert_before,
|
.insert_before = (void*)_insert_before,
|
||||||
|
|||||||
@@ -192,27 +192,6 @@ struct linked_list_t {
|
|||||||
status_t (*find_first) (linked_list_t *this, linked_list_match_t match,
|
status_t (*find_first) (linked_list_t *this, linked_list_match_t match,
|
||||||
void **item, ...);
|
void **item, ...);
|
||||||
|
|
||||||
/**
|
|
||||||
* Find the last matching element in the list.
|
|
||||||
*
|
|
||||||
* The first object passed to the match function is the current list item,
|
|
||||||
* followed by the user supplied data.
|
|
||||||
* If the supplied function returns TRUE this function returns SUCCESS, and
|
|
||||||
* the current object is returned in the third parameter, otherwise,
|
|
||||||
* the next item is checked.
|
|
||||||
*
|
|
||||||
* If match is NULL, *item and the current object are compared.
|
|
||||||
*
|
|
||||||
* @warning Only use pointers as user supplied data.
|
|
||||||
*
|
|
||||||
* @param match comparison function to call on each object, or NULL
|
|
||||||
* @param item the list item, if found
|
|
||||||
* @param ... user data to supply to match function (limited to 5 arguments)
|
|
||||||
* @return SUCCESS if found, NOT_FOUND otherwise
|
|
||||||
*/
|
|
||||||
status_t (*find_last) (linked_list_t *this, linked_list_match_t match,
|
|
||||||
void **item, ...);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoke a method on all of the contained objects.
|
* Invoke a method on all of the contained objects.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -195,20 +195,14 @@ START_TEST(test_find)
|
|||||||
void *a = (void*)1, *b = (void*)2;
|
void *a = (void*)1, *b = (void*)2;
|
||||||
|
|
||||||
ck_assert(list->find_first(list, NULL, &a) == NOT_FOUND);
|
ck_assert(list->find_first(list, NULL, &a) == NOT_FOUND);
|
||||||
ck_assert(list->find_last(list, NULL, &a) == NOT_FOUND);
|
|
||||||
list->insert_last(list, a);
|
list->insert_last(list, a);
|
||||||
ck_assert(list->find_first(list, NULL, &a) == SUCCESS);
|
ck_assert(list->find_first(list, NULL, &a) == SUCCESS);
|
||||||
ck_assert(list->find_first(list, NULL, &b) == NOT_FOUND);
|
ck_assert(list->find_first(list, NULL, &b) == NOT_FOUND);
|
||||||
ck_assert(list->find_last(list, NULL, &a) == SUCCESS);
|
|
||||||
ck_assert(list->find_last(list, NULL, &b) == NOT_FOUND);
|
|
||||||
list->insert_last(list, b);
|
list->insert_last(list, b);
|
||||||
ck_assert(list->find_first(list, NULL, &a) == SUCCESS);
|
ck_assert(list->find_first(list, NULL, &a) == SUCCESS);
|
||||||
ck_assert(list->find_first(list, NULL, &b) == SUCCESS);
|
ck_assert(list->find_first(list, NULL, &b) == SUCCESS);
|
||||||
ck_assert(list->find_last(list, NULL, &a) == SUCCESS);
|
|
||||||
ck_assert(list->find_last(list, NULL, &b) == SUCCESS);
|
|
||||||
|
|
||||||
ck_assert(list->find_first(list, NULL, NULL) == NOT_FOUND);
|
ck_assert(list->find_first(list, NULL, NULL) == NOT_FOUND);
|
||||||
ck_assert(list->find_last(list, NULL, NULL) == NOT_FOUND);
|
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
@@ -228,31 +222,14 @@ START_TEST(test_find_callback)
|
|||||||
ck_assert(list->find_first(list, (linked_list_match_t)match_a_b, &x, a, b) == SUCCESS);
|
ck_assert(list->find_first(list, (linked_list_match_t)match_a_b, &x, a, b) == SUCCESS);
|
||||||
ck_assert(a == x);
|
ck_assert(a == x);
|
||||||
|
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_a, NULL, a) == SUCCESS);
|
|
||||||
x = NULL;
|
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_a, &x, a) == SUCCESS);
|
|
||||||
ck_assert(a == x);
|
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_b, &x, b) == NOT_FOUND);
|
|
||||||
ck_assert(a == x);
|
|
||||||
x = NULL;
|
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_a_b, &x, a, b) == SUCCESS);
|
|
||||||
ck_assert(a == x);
|
|
||||||
|
|
||||||
list->insert_last(list, b);
|
list->insert_last(list, b);
|
||||||
ck_assert(list->find_first(list, (linked_list_match_t)match_a, &x, a) == SUCCESS);
|
ck_assert(list->find_first(list, (linked_list_match_t)match_a, &x, a) == SUCCESS);
|
||||||
ck_assert(a == x);
|
ck_assert(a == x);
|
||||||
ck_assert(list->find_first(list, (linked_list_match_t)match_b, &x, b) == SUCCESS);
|
ck_assert(list->find_first(list, (linked_list_match_t)match_b, &x, b) == SUCCESS);
|
||||||
ck_assert(b == x);
|
ck_assert(b == x);
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_a, &x, a) == SUCCESS);
|
|
||||||
ck_assert(a == x);
|
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_b, &x, b) == SUCCESS);
|
|
||||||
ck_assert(b == x);
|
|
||||||
x = NULL;
|
x = NULL;
|
||||||
ck_assert(list->find_first(list, (linked_list_match_t)match_a_b, &x, a, b) == SUCCESS);
|
ck_assert(list->find_first(list, (linked_list_match_t)match_a_b, &x, a, b) == SUCCESS);
|
||||||
ck_assert(a == x);
|
ck_assert(a == x);
|
||||||
x = NULL;
|
|
||||||
ck_assert(list->find_last(list, (linked_list_match_t)match_a_b, &x, a, b) == SUCCESS);
|
|
||||||
ck_assert(b == x);
|
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user