mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Add smartlist_reverse and smartlist_pop_last.
svn:r6634
This commit is contained in:
parent
7a3ac5ee0d
commit
78428dccdb
@ -127,6 +127,32 @@ smartlist_remove(smartlist_t *sl, const void *element)
|
||||
}
|
||||
}
|
||||
|
||||
/** If <b>sl</b> is nonempty, remove and return the final element. Otherwise,
|
||||
* return NULL. */
|
||||
void *
|
||||
smartlist_pop_last(smartlist_t *sl)
|
||||
{
|
||||
tor_assert(sl);
|
||||
if (sl->num_used)
|
||||
return sl->list[--sl->num_used];
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/** Reverse the order of the items in <b>sl</b>. */
|
||||
void
|
||||
smartlist_reverse(smartlist_t *sl)
|
||||
{
|
||||
int i, j;
|
||||
void *tmp;
|
||||
tor_assert(sl);
|
||||
for (i = 0, j = sl->num_used-1; i < j; ++i, --j) {
|
||||
tmp = sl->list[i];
|
||||
sl->list[i] = sl->list[j];
|
||||
sl->list[j] = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/** If there are any strings in sl equal to element, remove and free them.
|
||||
* Does not preserve order. */
|
||||
void
|
||||
|
@ -29,6 +29,8 @@ void smartlist_clear(smartlist_t *sl);
|
||||
void smartlist_add(smartlist_t *sl, void *element);
|
||||
void smartlist_add_all(smartlist_t *sl, const smartlist_t *s2);
|
||||
void smartlist_remove(smartlist_t *sl, const void *element);
|
||||
void *smartlist_pop_last(smartlist_t *sl);
|
||||
void smartlist_reverse(smartlist_t *sl);
|
||||
void smartlist_string_remove(smartlist_t *sl, const char *element);
|
||||
int smartlist_isin(const smartlist_t *sl, const void *element);
|
||||
int smartlist_string_isin(const smartlist_t *sl, const char *element);
|
||||
|
Loading…
Reference in New Issue
Block a user