summaryrefslogtreecommitdiff
path: root/extmod/moduos_dupterm.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-07-04 13:32:30 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-07-04 13:32:30 +0300
commit426112ce88bf3f6f86bf6900b74d7719d9991167 (patch)
tree8dc982041b3d55f78b4641a18a9909065b0507ea /extmod/moduos_dupterm.c
parentd83177b24867c42fb850714e328c7f1636067908 (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.c5
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;
}