summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-10-14 16:46:34 +1100
committerDamien George <damien.p.george@gmail.com>2016-10-14 16:46:34 +1100
commit824f5c5a32d740acad50d23b7ab1d69660dcf3ad (patch)
treec2d1f13b656b7a2f218fa59e20fd2ca039d03721
parented878275b020c006ec197bb5f5bdd8179fb36a4c (diff)
downloadmicropython-824f5c5a32d740acad50d23b7ab1d69660dcf3ad.tar.gz
micropython-824f5c5a32d740acad50d23b7ab1d69660dcf3ad.zip
py/vstr: Combine vstr_new_size with vstr_new since they are rarely used.
Now there is just one function to allocate a new vstr, namely vstr_new (in addition to vstr_init etc). The caller of this function should know what initial size to allocate for the buffer, or at least have some policy or config option, instead of leaving it to a default (as it was before).
-rw-r--r--lib/utils/pyexec.c2
-rw-r--r--py/misc.h3
-rw-r--r--py/objstringio.c2
-rw-r--r--py/vstr.c14
-rw-r--r--teensy/main.c2
-rw-r--r--unix/coverage.c2
6 files changed, 6 insertions, 19 deletions
diff --git a/lib/utils/pyexec.c b/lib/utils/pyexec.c
index aac211894c..5824e14035 100644
--- a/lib/utils/pyexec.c
+++ b/lib/utils/pyexec.c
@@ -148,7 +148,7 @@ STATIC int pyexec_raw_repl_process_char(int c);
STATIC int pyexec_friendly_repl_process_char(int c);
void pyexec_event_repl_init(void) {
- MP_STATE_VM(repl_line) = vstr_new_size(32);
+ MP_STATE_VM(repl_line) = vstr_new(32);
repl.cont_line = false;
readline_init(MP_STATE_VM(repl_line), ">>> ");
if (pyexec_mode_kind == PYEXEC_MODE_RAW_REPL) {
diff --git a/py/misc.h b/py/misc.h
index 3ed227a352..e60665e591 100644
--- a/py/misc.h
+++ b/py/misc.h
@@ -151,8 +151,7 @@ void vstr_init_fixed_buf(vstr_t *vstr, size_t alloc, char *buf);
struct _mp_print_t;
void vstr_init_print(vstr_t *vstr, size_t alloc, struct _mp_print_t *print);
void vstr_clear(vstr_t *vstr);
-vstr_t *vstr_new(void);
-vstr_t *vstr_new_size(size_t alloc);
+vstr_t *vstr_new(size_t alloc);
void vstr_free(vstr_t *vstr);
static inline void vstr_reset(vstr_t *vstr) { vstr->len = 0; }
static inline char *vstr_str(vstr_t *vstr) { return vstr->buf; }
diff --git a/py/objstringio.c b/py/objstringio.c
index be1a7d89cb..212d8e314f 100644
--- a/py/objstringio.c
+++ b/py/objstringio.c
@@ -150,7 +150,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(stringio___exit___obj, 4, 4, stringio
STATIC mp_obj_stringio_t *stringio_new(const mp_obj_type_t *type) {
mp_obj_stringio_t *o = m_new_obj(mp_obj_stringio_t);
o->base.type = type;
- o->vstr = vstr_new();
+ o->vstr = vstr_new(16);
o->pos = 0;
return o;
}
diff --git a/py/vstr.c b/py/vstr.c
index 5096475f10..6a91552b5a 100644
--- a/py/vstr.c
+++ b/py/vstr.c
@@ -74,20 +74,8 @@ void vstr_clear(vstr_t *vstr) {
vstr->buf = NULL;
}
-vstr_t *vstr_new(void) {
+vstr_t *vstr_new(size_t alloc) {
vstr_t *vstr = m_new_obj(vstr_t);
- if (vstr == NULL) {
- return NULL;
- }
- vstr_init(vstr, 16);
- return vstr;
-}
-
-vstr_t *vstr_new_size(size_t alloc) {
- vstr_t *vstr = m_new_obj(vstr_t);
- if (vstr == NULL) {
- return NULL;
- }
vstr_init(vstr, alloc);
return vstr;
}
diff --git a/teensy/main.c b/teensy/main.c
index 890ee81493..ba7207fe83 100644
--- a/teensy/main.c
+++ b/teensy/main.c
@@ -317,7 +317,7 @@ soft_reset:
pyexec_frozen_module("main.py");
#else
{
- vstr_t *vstr = vstr_new();
+ vstr_t *vstr = vstr_new(16);
vstr_add_str(vstr, "/");
if (pyb_config_main == MP_OBJ_NULL) {
vstr_add_str(vstr, "main.py");
diff --git a/unix/coverage.c b/unix/coverage.c
index c84a653f75..6a1b43fdce 100644
--- a/unix/coverage.c
+++ b/unix/coverage.c
@@ -34,7 +34,7 @@ STATIC mp_obj_t extra_coverage(void) {
// vstr
{
mp_printf(&mp_plat_print, "# vstr\n");
- vstr_t *vstr = vstr_new_size(16);
+ vstr_t *vstr = vstr_new(16);
vstr_hint_size(vstr, 32);
vstr_add_str(vstr, "ts");
vstr_ins_byte(vstr, 1, 'e');