From 00ee84e1e139416e1069a87965065a8c66c8afa4 Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Fri, 1 Jan 2016 14:19:26 +0200
Subject: [PATCH] py: Clean up instantiation of dupterm object.

To comply with already established scheme for extmod's.
---
 py/mpconfig.h       | 6 ------
 py/mpstate.h        | 5 +++++
 py/qstrdefs.h       | 4 ++++
 unix/mpconfigport.h | 1 -
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/py/mpconfig.h b/py/mpconfig.h
index 08dd497c5..5e717ad0f 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -819,12 +819,6 @@ typedef double mp_float_t;
 #define MICROPY_PORT_ROOT_POINTERS
 #endif
 
-#if MICROPY_PY_OS_DUPTERM
-#define MP_ROOT_PTR_DUPTERM_OBJ mp_obj_t term_obj
-#else
-#define MP_ROOT_PTR_DUPTERM_OBJ
-#endif
-
 /*****************************************************************************/
 /* Miscellaneous settings                                                    */
 
diff --git a/py/mpstate.h b/py/mpstate.h
index 012b0ef18..a990713f7 100644
--- a/py/mpstate.h
+++ b/py/mpstate.h
@@ -127,6 +127,11 @@ typedef struct _mp_state_vm_t {
     MICROPY_PORT_ROOT_POINTERS
 
     // root pointers for extmod
+
+    #if MICROPY_PY_OS_DUPTERM
+    mp_obj_t term_obj;
+    #endif
+
     #if MICROPY_PY_LWIP_SLIP
     mp_obj_t lwip_slip_stream;
     #endif
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index 483c75377..3be6168a8 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -665,3 +665,7 @@ Q(writeblocks)
 Q(sync)
 Q(count)
 #endif
+
+#if MICROPY_PY_OS_DUPTERM
+Q(dupterm)
+#endif
diff --git a/unix/mpconfigport.h b/unix/mpconfigport.h
index a5f32a081..b5f1a4587 100644
--- a/unix/mpconfigport.h
+++ b/unix/mpconfigport.h
@@ -253,7 +253,6 @@ void mp_hal_dupterm_tx_strn(const char *str, size_t len);
 #define MICROPY_PORT_ROOT_POINTERS \
     const char *readline_hist[50]; \
     mp_obj_t keyboard_interrupt_obj; \
-    MP_ROOT_PTR_DUPTERM_OBJ; \
     void *mmap_region_head; \
 
 // We need to provide a declaration/definition of alloca()
-- 
GitLab