diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-07-04 13:32:30 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-07-04 13:32:30 +0300 |
commit | 426112ce88bf3f6f86bf6900b74d7719d9991167 (patch) | |
tree | 8dc982041b3d55f78b4641a18a9909065b0507ea /extmod/moduos_dupterm.c | |
parent | d83177b24867c42fb850714e328c7f1636067908 (diff) |
extmod/moduos_dupterm: Reserve buffer bytearray object for dupterm.
Allocating it for each read/write operation is a memory fragmentation
hazard.
Diffstat (limited to 'extmod/moduos_dupterm.c')
-rw-r--r-- | extmod/moduos_dupterm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/extmod/moduos_dupterm.c b/extmod/moduos_dupterm.c index 4c9f9e494..66ca22ff9 100644 --- a/extmod/moduos_dupterm.c +++ b/extmod/moduos_dupterm.c @@ -69,9 +69,12 @@ STATIC mp_obj_t mp_uos_dupterm(mp_uint_t n_args, const mp_obj_t *args) { } } else { if (args[0] == mp_const_none) { - MP_STATE_PORT(term_obj) = NULL; + MP_STATE_PORT(term_obj) = MP_OBJ_NULL; } else { MP_STATE_PORT(term_obj) = args[0]; + if (MP_STATE_PORT(dupterm_arr_obj) == MP_OBJ_NULL) { + MP_STATE_PORT(dupterm_arr_obj) = mp_obj_new_bytearray(1, ""); + } } return mp_const_none; } |