diff options
author | Mark Pulford <mark@kyne.com.au> | 2011-04-25 00:56:55 +0930 |
---|---|---|
committer | Mark Pulford <mark@kyne.com.au> | 2011-04-25 00:56:55 +0930 |
commit | 85f2231b381a232686a39e4962b3d5e3cad61161 (patch) | |
tree | a4f91a37496af94a7bbfcdac268296e9dbb2679b /lua_json.c | |
parent | 2b693fb4493764e71f11b6257c0ce58cdbb8a779 (diff) | |
download | lua-cjson-85f2231b381a232686a39e4962b3d5e3cad61161.tar.gz lua-cjson-85f2231b381a232686a39e4962b3d5e3cad61161.tar.bz2 lua-cjson-85f2231b381a232686a39e4962b3d5e3cad61161.zip |
Add support for growing strbufs exponentially
- Change default to 1024 byte strings and doubling in size
- Add strbuf debug statistics
Diffstat (limited to 'lua_json.c')
-rw-r--r-- | lua_json.c | 6 |
1 files changed, 2 insertions, 4 deletions
@@ -247,8 +247,7 @@ char *lua_json_encode(lua_State *l, int *len) | |||
247 | strbuf_t buf; | 247 | strbuf_t buf; |
248 | char *json; | 248 | char *json; |
249 | 249 | ||
250 | strbuf_init(&buf); | 250 | strbuf_init(&buf, 0); |
251 | strbuf_set_increment(&buf, 256); | ||
252 | json_append_data(l, &buf); | 251 | json_append_data(l, &buf); |
253 | json = strbuf_free_to_string(&buf, len); | 252 | json = strbuf_free_to_string(&buf, len); |
254 | 253 | ||
@@ -637,8 +636,7 @@ void lua_json_decode(lua_State *l, const char *json_text) | |||
637 | 636 | ||
638 | json.data = json_text; | 637 | json.data = json_text; |
639 | json.index = 0; | 638 | json.index = 0; |
640 | json.tmp = strbuf_new(); | 639 | json.tmp = strbuf_new(0); |
641 | strbuf_set_increment(json.tmp, 256); | ||
642 | 640 | ||
643 | json_next_token(&json, &token); | 641 | json_next_token(&json, &token); |
644 | json_process_value(l, &json, &token); | 642 | json_process_value(l, &json, &token); |