[PATCH 02/14] Define _REENT_EMERGENCY(ptr) only once

Sebastian Huber sebastian.huber@embedded-brains.de
Tue Jun 21 12:49:19 GMT 2022


From: Matt Joyce <matthew.joyce@embedded-brains.de>

Use this macro to access the _emergency member of struct _reent.  This macro
will help to replace the _emergency member of struct _reent with a thread-local
storage object in a follow up patch.
---
 newlib/libc/include/sys/reent.h | 4 ++--
 newlib/libc/reent/reent.c       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index e9bded6c7..2b0ff46b7 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -531,7 +531,6 @@ struct _reent
 #define _REENT_MP_FREELIST(ptr)	((ptr)->_mp->_freelist)
 #define _REENT_ASCTIME_BUF(ptr)	((ptr)->_asctime_buf)
 #define _REENT_TM(ptr)		((ptr)->_localtime_buf)
-#define _REENT_EMERGENCY(ptr)	((ptr)->_emergency)
 #define _REENT_STRTOK_LAST(ptr)	((ptr)->_misc->_strtok_last)
 #define _REENT_MBLEN_STATE(ptr)	((ptr)->_misc->_mblen_state)
 #define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state)
@@ -704,7 +703,6 @@ struct _reent
 #define _REENT_MP_FREELIST(ptr)	((ptr)->_freelist)
 #define _REENT_ASCTIME_BUF(ptr)	((ptr)->_new._reent._asctime_buf)
 #define _REENT_TM(ptr)		(&(ptr)->_new._reent._localtime_buf)
-#define _REENT_EMERGENCY(ptr)	((ptr)->_emergency)
 #define _REENT_STRTOK_LAST(ptr)	((ptr)->_new._reent._strtok_last)
 #define _REENT_MBLEN_STATE(ptr)	((ptr)->_new._reent._mblen_state)
 #define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state)
@@ -720,6 +718,8 @@ struct _reent
 
 #endif /* !_REENT_SMALL */
 
+#define _REENT_EMERGENCY(_ptr)	((_ptr)->_emergency)
+
 #define _REENT_INIT_PTR(var) \
   { memset((var), 0, sizeof(*(var))); \
     _REENT_INIT_PTR_ZEROED(var); \
diff --git a/newlib/libc/reent/reent.c b/newlib/libc/reent/reent.c
index d61415901..a9d44b455 100644
--- a/newlib/libc/reent/reent.c
+++ b/newlib/libc/reent/reent.c
@@ -62,8 +62,8 @@ _reclaim_reent (struct _reent *ptr)
 #endif
 
 #ifdef _REENT_SMALL
-      if (ptr->_emergency)
-	_free_r (ptr, ptr->_emergency);
+      if (_REENT_EMERGENCY(ptr))
+	_free_r (ptr, _REENT_EMERGENCY(ptr));
       if (ptr->_mp)
 	_free_r (ptr, ptr->_mp);
       if (ptr->_r48)
-- 
2.35.3



More information about the Newlib mailing list