diff options
-rw-r--r-- | src/common/container.c | 30 | ||||
-rw-r--r-- | src/common/container.h | 7 | ||||
-rw-r--r-- | src/or/test.c | 2 |
3 files changed, 15 insertions, 24 deletions
diff --git a/src/common/container.c b/src/common/container.c index df20eca6a..ec47adf72 100644 --- a/src/common/container.c +++ b/src/common/container.c @@ -172,57 +172,47 @@ void *smartlist_get(const smartlist_t *sl, int idx) tor_assert(idx < sl->num_used); return sl->list[idx]; } -/** Return the number of items in sl. - */ -int smartlist_len(const smartlist_t *sl) -{ - return sl->num_used; -} -#endif - /** Change the value of the <b>idx</b>th element of sl to <b>val</b>; return the old * value of the <b>idx</b>th element. */ -void *smartlist_set(smartlist_t *sl, int idx, void *val) +void smartlist_set(smartlist_t *sl, int idx, void *val) { - void *old; tor_assert(sl); tor_assert(idx>=0); tor_assert(idx < sl->num_used); - old = sl->list[idx]; sl->list[idx] = val; - return old; } +/** Return the number of items in sl. + */ +int smartlist_len(const smartlist_t *sl) +{ + return sl->num_used; +} +#endif /** Remove the <b>idx</b>th element of sl; if idx is not the last * element, swap the last element of sl into the <b>idx</b>th space. * Return the old value of the <b>idx</b>th element. */ -void *smartlist_del(smartlist_t *sl, int idx) +void smartlist_del(smartlist_t *sl, int idx) { - void *old; tor_assert(sl); tor_assert(idx>=0); tor_assert(idx < sl->num_used); - old = sl->list[idx]; sl->list[idx] = sl->list[--sl->num_used]; - return old; } /** Remove the <b>idx</b>th element of sl; if idx is not the last element, * moving all subsequent elements back one space. Return the old value * of the <b>idx</b>th element. */ -void *smartlist_del_keeporder(smartlist_t *sl, int idx) +void smartlist_del_keeporder(smartlist_t *sl, int idx) { - void *old; tor_assert(sl); tor_assert(idx>=0); tor_assert(idx < sl->num_used); - old = sl->list[idx]; --sl->num_used; if (idx < sl->num_used) memmove(sl->list+idx, sl->list+idx+1, sizeof(void*)*(sl->num_used-idx)); - return old; } /** Insert the value <b>val</b> as the new <b>idx</b>th element of * <b>sl</b>, moving all items previously at <b>idx</b> or later diff --git a/src/common/container.h b/src/common/container.h index bc000cef4..fbfe93d56 100644 --- a/src/common/container.h +++ b/src/common/container.h @@ -36,14 +36,15 @@ void smartlist_subtract(smartlist_t *sl1, const smartlist_t *sl2); /* smartlist_choose() is defined in crypto.[ch] */ #ifndef FAST_SMARTLIST void *smartlist_get(const smartlist_t *sl, int idx); +void smartlist_set(smartlist_t *sl, int idx, void *val); int smartlist_len(const smartlist_t *sl); #else #define smartlist_get(sl,idx) ((sl)->list[(idx)]) +#define smartlist_set(sl,idx,val) ((sl)->list[(idx)] = val) #define smartlist_len(sl) ((sl)->num_used) #endif -void *smartlist_set(smartlist_t *sl, int idx, void *val); -void *smartlist_del(smartlist_t *sl, int idx); -void *smartlist_del_keeporder(smartlist_t *sl, int idx); +void smartlist_del(smartlist_t *sl, int idx); +void smartlist_del_keeporder(smartlist_t *sl, int idx); void smartlist_insert(smartlist_t *sl, int idx, void *val); #define SPLIT_SKIP_SPACE 0x01 diff --git a/src/or/test.c b/src/or/test.c index 5bf99917a..056ec9300 100644 --- a/src/or/test.c +++ b/src/or/test.c @@ -545,7 +545,7 @@ test_util(void) { smartlist_add(sl, (void*)2); smartlist_add(sl, (void*)3); smartlist_add(sl, (void*)4); - test_eq((void*)2, smartlist_del_keeporder(sl, 1)); + smartlist_del_keeporder(sl, 1); smartlist_insert(sl, 1, (void*)22); smartlist_insert(sl, 0, (void*)0); smartlist_insert(sl, 5, (void*)555); |