mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
Make smartlist_string_remove consistent with smartlist_string
svn:r3998
This commit is contained in:
parent
1aedf3daf5
commit
f696fd98bf
@ -118,17 +118,18 @@ void smartlist_remove(smartlist_t *sl, void *element) {
|
||||
}
|
||||
}
|
||||
|
||||
/** If there are any string in sl equal to element, remove the first.
|
||||
/** If there are any strings in sl equal to element, remove them.
|
||||
* Does not preserve order. */
|
||||
void
|
||||
smartlist_string_remove(smartlist_t *sl, const char *element)
|
||||
{
|
||||
int i;
|
||||
size_t len = smartlist_len(sl);
|
||||
for (i = 0; i < len; ++i) {
|
||||
if (!strcmp(element, smartlist_get(sl, i))) {
|
||||
smartlist_del(sl, i);
|
||||
return;
|
||||
tor_assert(sl);
|
||||
tor_assert(element);
|
||||
for (i = 0; i < sl->num_used; ++i) {
|
||||
if (!strcmp(element, sl->list[i]) {
|
||||
sl->list[i] = sl->list[--sl->num_used]; /* swap with the end */
|
||||
i--; /* so we process the new i'th element */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user