[newlib-cygwin] Add _REENT_CVTLEN(ptr)

Sebastian Huber sh@sourceware.org
Wed Jul 13 08:19:53 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=315c420e1becee5dc5dbe6fad5ffc1a447ea2e48

commit 315c420e1becee5dc5dbe6fad5ffc1a447ea2e48
Author: Matt Joyce <matthew.joyce@embedded-brains.de>
Date:   Thu Feb 3 11:19:14 2022 +0100

    Add _REENT_CVTLEN(ptr)
    
    Add a _REENT_CVTLEN() macro to encapsulate access to the _cvtlen
    member of struct reent. This will help to replace the struct
    member with a thread-local storage object in a follow-up patch.

Diff:
---
 newlib/libc/include/sys/reent.h | 1 +
 newlib/libc/stdlib/ecvtbuf.c    | 8 ++++----
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index 3d277638f..8c88fae20 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -719,6 +719,7 @@ struct _reent
 #endif /* !_REENT_SMALL */
 
 #define _REENT_CLEANUP(_ptr)	((_ptr)->__cleanup)
+#define _REENT_CVTLEN(_ptr)	((_ptr)->_cvtlen)
 #define _REENT_EMERGENCY(_ptr)	((_ptr)->_emergency)
 #define _REENT_ERRNO(_ptr)	((_ptr)->_errno)
 #define _REENT_INC(_ptr)	((_ptr)->_inc)
diff --git a/newlib/libc/stdlib/ecvtbuf.c b/newlib/libc/stdlib/ecvtbuf.c
index 0cb11f889..0e776ab65 100644
--- a/newlib/libc/stdlib/ecvtbuf.c
+++ b/newlib/libc/stdlib/ecvtbuf.c
@@ -230,12 +230,12 @@ fcvtbuf (double invalue,
 
   if (fcvt_buf == NULL)
     {
-      if (reent->_cvtlen <= ndigit + 35)
+      if (_REENT_CVTLEN(reent) <= ndigit + 35)
 	{
 	  if ((fcvt_buf = (char *) _realloc_r (reent, reent->_cvtbuf,
 					       ndigit + 36)) == NULL)
 	    return NULL;
-	  reent->_cvtlen = ndigit + 36;
+	  _REENT_CVTLEN(reent) = ndigit + 36;
 	  reent->_cvtbuf = fcvt_buf;
 	}
 
@@ -279,12 +279,12 @@ ecvtbuf (double invalue,
 
   if (fcvt_buf == NULL)
     {
-      if (reent->_cvtlen <= ndigit)
+      if (_REENT_CVTLEN(reent) <= ndigit)
 	{
 	  if ((fcvt_buf = (char *) _realloc_r (reent, reent->_cvtbuf,
 					       ndigit + 1)) == NULL)
 	    return NULL;
-	  reent->_cvtlen = ndigit + 1;
+	  _REENT_CVTLEN(reent) = ndigit + 1;
 	  reent->_cvtbuf = fcvt_buf;
 	}


More information about the Newlib-cvs mailing list