Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpx/lua-cjson.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Pulford <mark@kyne.com.au>2011-05-02 18:53:16 +0400
committerMark Pulford <mark@kyne.com.au>2011-05-02 18:53:16 +0400
commitb07c4162f4e1c5056e73500147a17f4e63abaaf4 (patch)
tree8af0d3575c205efbe4582eb5aa18e8075c535110 /strbuf.h
parentf89fb30058a7d2d6a896ace242fc612bfe4e2c34 (diff)
Add strbuf_append_number()
The separate strbuf_append_number() function avoids a potential double call to the slow vsnprintf() function required by strbuf_append_fmt(). Also inline strbuf_append_mem() since it is very simple and will be used often.
Diffstat (limited to 'strbuf.h')
-rw-r--r--strbuf.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/strbuf.h b/strbuf.h
index 9b662ef..46fad33 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -66,8 +66,9 @@ static void strbuf_ensure_empty_length(strbuf_t *s, int len);
/* Update */
extern void strbuf_append_fmt(strbuf_t *s, const char *format, ...);
-extern void strbuf_append_mem(strbuf_t *s, const char *c, int len);
+static void strbuf_append_mem(strbuf_t *s, const char *c, int len);
extern void strbuf_append_string(strbuf_t *s, const char *str);
+extern void strbuf_append_number(strbuf_t *s, double number);
static void strbuf_append_char(strbuf_t *s, const char c);
static void strbuf_ensure_null(strbuf_t *s);
@@ -100,6 +101,13 @@ static inline void strbuf_append_char_unsafe(strbuf_t *s, const char c)
s->buf[s->length++] = c;
}
+static inline void strbuf_append_mem(strbuf_t *s, const char *c, int len)
+{
+ strbuf_ensure_empty_length(s, len);
+ memcpy(s->buf + s->length, c, len);
+ s->length += len;
+}
+
static inline void strbuf_ensure_null(strbuf_t *s)
{
s->buf[s->length] = 0;