Add _REENT_CVTBUF(ptr)
Add a _REENT_CVTBUF() macro to encapsulate access to the _cvtbuf member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
This commit is contained in:
parent
315c420e1b
commit
81352a9df9
|
@ -719,6 +719,7 @@ struct _reent
|
||||||
#endif /* !_REENT_SMALL */
|
#endif /* !_REENT_SMALL */
|
||||||
|
|
||||||
#define _REENT_CLEANUP(_ptr) ((_ptr)->__cleanup)
|
#define _REENT_CLEANUP(_ptr) ((_ptr)->__cleanup)
|
||||||
|
#define _REENT_CVTBUF(_ptr) ((_ptr)->_cvtbuf)
|
||||||
#define _REENT_CVTLEN(_ptr) ((_ptr)->_cvtlen)
|
#define _REENT_CVTLEN(_ptr) ((_ptr)->_cvtlen)
|
||||||
#define _REENT_EMERGENCY(_ptr) ((_ptr)->_emergency)
|
#define _REENT_EMERGENCY(_ptr) ((_ptr)->_emergency)
|
||||||
#define _REENT_ERRNO(_ptr) ((_ptr)->_errno)
|
#define _REENT_ERRNO(_ptr) ((_ptr)->_errno)
|
||||||
|
|
|
@ -78,8 +78,8 @@ _reclaim_reent (struct _reent *ptr)
|
||||||
_free_r (ptr, ptr->_misc);
|
_free_r (ptr, ptr->_misc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ptr->_cvtbuf)
|
if (_REENT_CVTBUF(ptr))
|
||||||
_free_r (ptr, ptr->_cvtbuf);
|
_free_r (ptr, _REENT_CVTBUF(ptr));
|
||||||
/* We should free _sig_func to avoid a memory leak, but how to
|
/* We should free _sig_func to avoid a memory leak, but how to
|
||||||
do it safely considering that a signal may be delivered immediately
|
do it safely considering that a signal may be delivered immediately
|
||||||
after the free?
|
after the free?
|
||||||
|
|
|
@ -232,14 +232,14 @@ fcvtbuf (double invalue,
|
||||||
{
|
{
|
||||||
if (_REENT_CVTLEN(reent) <= ndigit + 35)
|
if (_REENT_CVTLEN(reent) <= ndigit + 35)
|
||||||
{
|
{
|
||||||
if ((fcvt_buf = (char *) _realloc_r (reent, reent->_cvtbuf,
|
if ((fcvt_buf = (char *) _realloc_r (reent, _REENT_CVTBUF(reent),
|
||||||
ndigit + 36)) == NULL)
|
ndigit + 36)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
_REENT_CVTLEN(reent) = ndigit + 36;
|
_REENT_CVTLEN(reent) = ndigit + 36;
|
||||||
reent->_cvtbuf = fcvt_buf;
|
_REENT_CVTBUF(reent) = fcvt_buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
fcvt_buf = reent->_cvtbuf ;
|
fcvt_buf = _REENT_CVTBUF(reent) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
save = fcvt_buf;
|
save = fcvt_buf;
|
||||||
|
@ -281,14 +281,14 @@ ecvtbuf (double invalue,
|
||||||
{
|
{
|
||||||
if (_REENT_CVTLEN(reent) <= ndigit)
|
if (_REENT_CVTLEN(reent) <= ndigit)
|
||||||
{
|
{
|
||||||
if ((fcvt_buf = (char *) _realloc_r (reent, reent->_cvtbuf,
|
if ((fcvt_buf = (char *) _realloc_r (reent, _REENT_CVTBUF(reent),
|
||||||
ndigit + 1)) == NULL)
|
ndigit + 1)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
_REENT_CVTLEN(reent) = ndigit + 1;
|
_REENT_CVTLEN(reent) = ndigit + 1;
|
||||||
reent->_cvtbuf = fcvt_buf;
|
_REENT_CVTBUF(reent) = fcvt_buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
fcvt_buf = reent->_cvtbuf ;
|
fcvt_buf = _REENT_CVTBUF(reent) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
save = fcvt_buf;
|
save = fcvt_buf;
|
||||||
|
|
Loading…
Reference in New Issue