diff options
author | Matthew Green <mrg@redhat.com> | 2002-02-03 09:24:18 +0000 |
---|---|---|
committer | Matthew Green <mrg@redhat.com> | 2002-02-03 09:24:18 +0000 |
commit | 8195aff714f2ea5d680a5129a1d54af388e90355 (patch) | |
tree | 683ff47f4802385e669491dda42bf8050772dbdf /newlib/libc/stdlib/dtoa.c | |
parent | ad67ada2fc7cdb361643d506701e274a67d796f9 (diff) | |
download | cygnal-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.c | 19 |
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) { |