[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Move smartlist_add_{v, }asprintf into smartlist.[ch]
commit 3883338c8121212b3f6f9c020d489d50bbcdd855
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Fri Jun 22 09:26:19 2018 -0400
Move smartlist_add_{v,}asprintf into smartlist.[ch]
Now that I know that "strings" nests below "container", I know this
is safe.
---
src/common/util.c | 24 ------------------------
src/common/util.h | 8 +-------
src/lib/container/smartlist.c | 25 +++++++++++++++++++++++++
src/lib/container/smartlist.h | 5 +++++
src/rust/build.rs | 1 +
5 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/src/common/util.c b/src/common/util.c
index 597ff2c42..fc996f16c 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -2595,30 +2595,6 @@ expand_filename(const char *filename)
#endif /* defined(_WIN32) */
}
-/** Append the string produced by tor_asprintf(<b>pattern</b>, <b>...</b>)
- * to <b>sl</b>. */
-void
-smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...)
-{
- va_list ap;
- va_start(ap, pattern);
- smartlist_add_vasprintf(sl, pattern, ap);
- va_end(ap);
-}
-
-/** va_list-based backend of smartlist_add_asprintf. */
-void
-smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern,
- va_list args)
-{
- char *str = NULL;
-
- tor_vasprintf(&str, pattern, args);
- tor_assert(str != NULL);
-
- smartlist_add(sl, str);
-}
-
/** Return a new list containing the filenames in the directory <b>dirname</b>.
* Return NULL on error or if <b>dirname</b> is not a directory.
*/
diff --git a/src/common/util.h b/src/common/util.h
index 5833fe567..de6ba8ece 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -126,13 +126,6 @@ const char *escaped(const char *string);
char *tor_escape_str_for_pt_args(const char *string,
const char *chars_to_escape);
-struct smartlist_t;
-void smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...)
- CHECK_PRINTF(2, 3);
-void smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern,
- va_list args)
- CHECK_PRINTF(2, 0);
-
/* Time helpers */
long tv_udiff(const struct timeval *start, const struct timeval *end);
long tv_mdiff(const struct timeval *start, const struct timeval *end);
@@ -250,6 +243,7 @@ typedef struct sized_chunk_t {
const char *bytes;
size_t len;
} sized_chunk_t;
+struct smartlist_t;
int write_chunks_to_file(const char *fname, const struct smartlist_t *chunks,
int bin, int no_tempfile);
int append_bytes_to_file(const char *fname, const char *str, size_t len,
diff --git a/src/lib/container/smartlist.c b/src/lib/container/smartlist.c
index 3a0a2d106..57b88415a 100644
--- a/src/lib/container/smartlist.c
+++ b/src/lib/container/smartlist.c
@@ -18,6 +18,7 @@
#include "lib/defs/digest_sizes.h"
#include "lib/ctime/di_ops.h"
#include "lib/string/util_string.h"
+#include "lib/string/printf.h"
#include <stdlib.h>
#include <string.h>
@@ -124,6 +125,30 @@ smartlist_add_strdup(struct smartlist_t *sl, const char *string)
smartlist_add(sl, copy);
}
+/** Append the string produced by tor_asprintf(<b>pattern</b>, <b>...</b>)
+ * to <b>sl</b>. */
+void
+smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...)
+{
+ va_list ap;
+ va_start(ap, pattern);
+ smartlist_add_vasprintf(sl, pattern, ap);
+ va_end(ap);
+}
+
+/** va_list-based backend of smartlist_add_asprintf. */
+void
+smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern,
+ va_list args)
+{
+ char *str = NULL;
+
+ tor_vasprintf(&str, pattern, args);
+ tor_assert(str != NULL);
+
+ smartlist_add(sl, str);
+}
+
/** Remove all elements E from sl such that E==element. Preserve
* the order of any elements before E, but elements after E can be
* rearranged.
diff --git a/src/lib/container/smartlist.h b/src/lib/container/smartlist.h
index 7b80a9fed..53a4948cf 100644
--- a/src/lib/container/smartlist.h
+++ b/src/lib/container/smartlist.h
@@ -37,6 +37,11 @@ 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_add_strdup(struct smartlist_t *sl, const char *string);
+void smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...)
+ CHECK_PRINTF(2, 3);
+void smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern,
+ va_list args)
+ CHECK_PRINTF(2, 0);
void smartlist_remove(smartlist_t *sl, const void *element);
void smartlist_remove_keeporder(smartlist_t *sl, const void *element);
void *smartlist_pop_last(smartlist_t *sl);
diff --git a/src/rust/build.rs b/src/rust/build.rs
index a4f38d3b4..5c80265e5 100644
--- a/src/rust/build.rs
+++ b/src/rust/build.rs
@@ -152,6 +152,7 @@ pub fn main() {
cfg.component("tor-crypt-ops-testing");
cfg.component("or-testing");
cfg.component("tor-container-testing");
+ cfg.component("tor-string-testing");
cfg.component("tor-malloc");
cfg.component("tor-err-testing");
cfg.component("or-event-testing");
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits