From 4792d4bddbe2341de4be778b541db3958bc7e56b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 2 May 2017 15:38:00 +0300 Subject: [PATCH] lib: Add dec2str_buf() Conflicts: src/lib/strfuncs.c --- src/lib/strfuncs.c | 8 +++++--- src/lib/strfuncs.h | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lib/strfuncs.c b/src/lib/strfuncs.c index c320b261b4..c30a189afc 100644 --- a/src/lib/strfuncs.c +++ b/src/lib/strfuncs.c @@ -733,12 +733,14 @@ const char **p_strarray_dup(pool_t pool, const char *const *arr) const char *dec2str(uintmax_t number) { - char *buffer; + return dec2str_buf(t_malloc_no0(MAX_INT_STRLEN), number); +} + +char *dec2str_buf(char buffer[STATIC_ARRAY MAX_INT_STRLEN], uintmax_t number) +{ int pos; pos = MAX_INT_STRLEN; - buffer = t_malloc(pos); - buffer[--pos] = '\0'; do { buffer[--pos] = (number % 10) + '0'; diff --git a/src/lib/strfuncs.h b/src/lib/strfuncs.h index 3e22409d9a..428abcda70 100644 --- a/src/lib/strfuncs.h +++ b/src/lib/strfuncs.h @@ -94,6 +94,10 @@ void p_strsplit_free(pool_t pool, char **arr); const char **t_strsplit_tab(const char *data) ATTR_MALLOC ATTR_RETURNS_NONNULL; const char *dec2str(uintmax_t number); +/* Use the given buffer to write out the number. Returns pointer to the + written number in the buffer. Note that this isn't the same as the beginning + of the buffer. */ +char *dec2str_buf(char buffer[STATIC_ARRAY MAX_INT_STRLEN], uintmax_t number); /* Return length of NULL-terminated list string array */ unsigned int str_array_length(const char *const *arr) ATTR_PURE; -- 2.47.3