summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdlib/dtoa.c
diff options
context:
space:
mode:
authorMatthew Green <mrg@redhat.com>2002-02-03 09:24:18 +0000
committerMatthew Green <mrg@redhat.com>2002-02-03 09:24:18 +0000
commit8195aff714f2ea5d680a5129a1d54af388e90355 (patch)
tree683ff47f4802385e669491dda42bf8050772dbdf /newlib/libc/stdlib/dtoa.c
parentad67ada2fc7cdb361643d506701e274a67d796f9 (diff)
downloadcygnal-8195aff714f2ea5d680a5129a1d54af388e90355.tar.gz
cygnal-8195aff714f2ea5d680a5129a1d54af388e90355.tar.bz2
cygnal-8195aff714f2ea5d680a5129a1d54af388e90355.zip
* implement a new `struct _reent' that is significantly smaller. use this
if _REENT_SMALL is defined in config.h. define this for xstormy16.
Diffstat (limited to 'newlib/libc/stdlib/dtoa.c')
-rw-r--r--newlib/libc/stdlib/dtoa.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/newlib/libc/stdlib/dtoa.c b/newlib/libc/stdlib/dtoa.c
index 1ea1c5560..c9be9ed51 100644
--- a/newlib/libc/stdlib/dtoa.c
+++ b/newlib/libc/stdlib/dtoa.c
@@ -235,12 +235,13 @@ _DEFUN (_dtoa_r,
d.d = _d;
- if (ptr->_result)
+ _REENT_CHECK_MP(ptr);
+ if (_REENT_MP_RESULT(ptr))
{
- ptr->_result->_k = ptr->_result_k;
- ptr->_result->_maxwds = 1 << ptr->_result_k;
- Bfree (ptr, ptr->_result);
- ptr->_result = 0;
+ _REENT_MP_RESULT(ptr)->_k = _REENT_MP_RESULT_K(ptr);
+ _REENT_MP_RESULT(ptr)->_maxwds = 1 << _REENT_MP_RESULT_K(ptr);
+ Bfree (ptr, _REENT_MP_RESULT(ptr));
+ _REENT_MP_RESULT(ptr) = 0;
}
if (word0 (d) & Sign_bit)
@@ -415,11 +416,11 @@ _DEFUN (_dtoa_r,
i = 1;
}
j = sizeof (__ULong);
- for (ptr->_result_k = 0; sizeof (_Bigint) - sizeof (__ULong) + j <= i;
+ for (_REENT_MP_RESULT_K(ptr) = 0; sizeof (_Bigint) - sizeof (__ULong) + j <= i;
j <<= 1)
- ptr->_result_k++;
- ptr->_result = Balloc (ptr, ptr->_result_k);
- s = s0 = (char *) ptr->_result;
+ _REENT_MP_RESULT_K(ptr)++;
+ _REENT_MP_RESULT(ptr) = Balloc (ptr, _REENT_MP_RESULT_K(ptr));
+ s = s0 = (char *) _REENT_MP_RESULT(ptr);
if (ilim >= 0 && ilim <= Quick_max && try_quick)
{