aboutsummaryrefslogtreecommitdiff
path: root/src/lj_buf.h
diff options
context:
space:
mode:
authorMike Pall <mike>2013-05-13 10:15:07 +0200
committerMike Pall <mike>2013-05-13 10:15:07 +0200
commit8f90a1279e125a8cb9727751f76fb75214208f89 (patch)
treeb65706b5b10231780735fcf80966e14f616f39b7 /src/lj_buf.h
parent625ffca739a703906fbc321ef9405514d72480fe (diff)
downloadluajit-8f90a1279e125a8cb9727751f76fb75214208f89.tar.gz
luajit-8f90a1279e125a8cb9727751f76fb75214208f89.tar.bz2
luajit-8f90a1279e125a8cb9727751f76fb75214208f89.zip
Big renaming of string buffer/formatting/conversion functions.
Diffstat (limited to 'src/lj_buf.h')
-rw-r--r--src/lj_buf.h53
1 files changed, 28 insertions, 25 deletions
diff --git a/src/lj_buf.h b/src/lj_buf.h
index 6931a693..951d39fd 100644
--- a/src/lj_buf.h
+++ b/src/lj_buf.h
@@ -20,28 +20,10 @@
20#define setsbufP(sb, q) (setmref((sb)->p, (q))) 20#define setsbufP(sb, q) (setmref((sb)->p, (q)))
21#define setsbufL(sb, l) (setmref((sb)->L, (l))) 21#define setsbufL(sb, l) (setmref((sb)->L, (l)))
22 22
23LJ_FUNC char * LJ_FASTCALL lj_buf_tmp(lua_State *L, MSize sz); 23/* Buffer management */
24LJ_FUNC void LJ_FASTCALL lj_buf_grow(SBuf *sb, char *en); 24LJ_FUNC void LJ_FASTCALL lj_buf_grow(SBuf *sb, char *en);
25LJ_FUNC void LJ_FASTCALL lj_buf_shrink(lua_State *L, SBuf *sb); 25LJ_FUNC void LJ_FASTCALL lj_buf_shrink(lua_State *L, SBuf *sb);
26 26LJ_FUNC char * LJ_FASTCALL lj_buf_tmp(lua_State *L, MSize sz);
27LJ_FUNC char *lj_buf_wmem(char *p, const void *q, MSize len);
28LJ_FUNC SBuf * lj_buf_putmem(SBuf *sb, const void *q, MSize len);
29#if LJ_HASJIT
30LJ_FUNC SBuf * LJ_FASTCALL lj_buf_putstr(SBuf *sb, GCstr *s);
31LJ_FUNC SBuf * LJ_FASTCALL lj_buf_putchar(SBuf *sb, int c);
32LJ_FUNC SBuf * LJ_FASTCALL lj_buf_putint(SBuf *sb, int32_t k);
33LJ_FUNC SBuf * LJ_FASTCALL lj_buf_putnum(SBuf *sb, cTValue *o);
34#endif
35LJ_FUNCA SBuf * LJ_FASTCALL lj_buf_putstr_reverse(SBuf *sb, GCstr *s);
36LJ_FUNCA SBuf * LJ_FASTCALL lj_buf_putstr_lower(SBuf *sb, GCstr *s);
37LJ_FUNCA SBuf * LJ_FASTCALL lj_buf_putstr_upper(SBuf *sb, GCstr *s);
38LJ_FUNC SBuf *lj_buf_putstr_rep(SBuf *sb, GCstr *s, int32_t rep);
39LJ_FUNC SBuf *lj_buf_puttab(SBuf *sb, GCtab *t, GCstr *sep,
40 int32_t i, int32_t e);
41LJ_FUNCA GCstr * LJ_FASTCALL lj_buf_tostr(SBuf *sb);
42LJ_FUNC GCstr *lj_buf_cat2str(lua_State *L, GCstr *s1, GCstr *s2);
43LJ_FUNC uint32_t LJ_FASTCALL lj_buf_ruleb128(const char **pp);
44LJ_FUNC char * LJ_FASTCALL lj_buf_wuleb128(char *p, uint32_t v);
45 27
46static LJ_AINLINE void lj_buf_init(lua_State *L, SBuf *sb) 28static LJ_AINLINE void lj_buf_init(lua_State *L, SBuf *sb)
47{ 29{
@@ -67,11 +49,6 @@ static LJ_AINLINE void lj_buf_free(global_State *g, SBuf *sb)
67 lj_mem_free(g, sbufB(sb), sbufsz(sb)); 49 lj_mem_free(g, sbufB(sb), sbufsz(sb));
68} 50}
69 51
70static LJ_AINLINE GCstr *lj_buf_str(lua_State *L, SBuf *sb)
71{
72 return lj_str_new(L, sbufB(sb), sbuflen(sb));
73}
74
75static LJ_AINLINE char *lj_buf_need(SBuf *sb, MSize sz) 52static LJ_AINLINE char *lj_buf_need(SBuf *sb, MSize sz)
76{ 53{
77 char *en = sbufB(sb) + sz; 54 char *en = sbufB(sb) + sz;
@@ -88,6 +65,14 @@ static LJ_AINLINE char *lj_buf_more(SBuf *sb, MSize sz)
88 return sbufP(sb); 65 return sbufP(sb);
89} 66}
90 67
68/* Low-level buffer put operations */
69LJ_FUNC char *lj_buf_wmem(char *p, const void *q, MSize len);
70LJ_FUNC SBuf * lj_buf_putmem(SBuf *sb, const void *q, MSize len);
71#if LJ_HASJIT
72LJ_FUNC SBuf * LJ_FASTCALL lj_buf_putchar(SBuf *sb, int c);
73#endif
74LJ_FUNC SBuf * LJ_FASTCALL lj_buf_putstr(SBuf *sb, GCstr *s);
75
91static LJ_AINLINE void lj_buf_putb(SBuf *sb, int c) 76static LJ_AINLINE void lj_buf_putb(SBuf *sb, int c)
92{ 77{
93 char *p = lj_buf_more(sb, 1); 78 char *p = lj_buf_more(sb, 1);
@@ -95,4 +80,22 @@ static LJ_AINLINE void lj_buf_putb(SBuf *sb, int c)
95 setsbufP(sb, p); 80 setsbufP(sb, p);
96} 81}
97 82
83/* High-level buffer put operations */
84LJ_FUNCA SBuf * LJ_FASTCALL lj_buf_putstr_reverse(SBuf *sb, GCstr *s);
85LJ_FUNCA SBuf * LJ_FASTCALL lj_buf_putstr_lower(SBuf *sb, GCstr *s);
86LJ_FUNCA SBuf * LJ_FASTCALL lj_buf_putstr_upper(SBuf *sb, GCstr *s);
87LJ_FUNC SBuf *lj_buf_putstr_rep(SBuf *sb, GCstr *s, int32_t rep);
88LJ_FUNC SBuf *lj_buf_puttab(SBuf *sb, GCtab *t, GCstr *sep,
89 int32_t i, int32_t e);
90
91/* Miscellaneous buffer operations */
92LJ_FUNCA GCstr * LJ_FASTCALL lj_buf_tostr(SBuf *sb);
93LJ_FUNC GCstr *lj_buf_cat2str(lua_State *L, GCstr *s1, GCstr *s2);
94LJ_FUNC uint32_t LJ_FASTCALL lj_buf_ruleb128(const char **pp);
95
96static LJ_AINLINE GCstr *lj_buf_str(lua_State *L, SBuf *sb)
97{
98 return lj_str_new(L, sbufB(sb), sbuflen(sb));
99}
100
98#endif 101#endif