aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/container.c30
-rw-r--r--src/common/container.h7
-rw-r--r--src/or/test.c2
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);