From a33723fb145a30d92dea572c8f3c9eeb3c99b477 Mon Sep 17 00:00:00 2001 From: fwcd Date: Sat, 6 Apr 2019 22:17:03 +0200 Subject: [PATCH] Revert "Change mantissa iterators that rely on out-of-bounds indices back to pointers" This reverts commit cf8898eda640697e21583e91030cffbff2d7358a. --- src/CalcManager/Ratpack/conv.cpp | 6 +++--- src/CalcManager/Ratpack/num.cpp | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/CalcManager/Ratpack/conv.cpp b/src/CalcManager/Ratpack/conv.cpp index c5c273c5..031e6e44 100644 --- a/src/CalcManager/Ratpack/conv.cpp +++ b/src/CalcManager/Ratpack/conv.cpp @@ -377,7 +377,7 @@ PNUMBER numtonRadixx(_In_ PNUMBER a, uint32_t radix) { PNUMBER pnumret = i32tonum(0, BASEX); // pnumret is the number in internal form. PNUMBER num_radix = i32tonum(radix, BASEX); - MANTTYPE *ptrdigit = a->mant.data(); // pointer to digit being worked on. + vector::iterator ptrdigit = a->mant.begin(); // iterator pointing to digit being worked on. // Digits are in reverse order, back over them LSD first. ptrdigit += a->cdigit-1; @@ -1028,7 +1028,7 @@ int32_t numtoi32( _In_ PNUMBER pnum, uint32_t radix ) { int32_t lret = 0; - MANTTYPE *pmant = pnum->mant.data(); + vector::iterator pmant = pnum->mant.begin(); pmant += pnum->cdigit - 1; int32_t expt = pnum->exp; @@ -1200,7 +1200,7 @@ wstring NumberToString(_Inout_ PNUMBER& pnum, int format, uint32_t radix, int32_ // Set up all the post rounding stuff. bool useSciForm = false; int32_t eout = exponent - 1; // Displayed exponent. - MANTTYPE *pmant = pnum->mant.data() + pnum->cdigit - 1; + vector::iterator pmant = pnum->mant.begin() + pnum->cdigit - 1; // Case where too many digits are to the left of the decimal or // FMT_SCIENTIFIC or FMT_ENGINEERING was specified. if ((format == FMT_SCIENTIFIC) || (format == FMT_ENGINEERING)) diff --git a/src/CalcManager/Ratpack/num.cpp b/src/CalcManager/Ratpack/num.cpp index 6ba68d37..d56757fe 100644 --- a/src/CalcManager/Ratpack/num.cpp +++ b/src/CalcManager/Ratpack/num.cpp @@ -506,8 +506,8 @@ bool equnum( PNUMBER a, PNUMBER b ) { int32_t diff; - MANTTYPE *pa; - MANTTYPE *pb; + vector::iterator pa; + vector::iterator pb; int32_t cdigits; int32_t ccdigits; MANTTYPE da; @@ -529,8 +529,8 @@ bool equnum( PNUMBER a, PNUMBER b ) else { // OK the exponents match. - pa = a->mant.data(); - pb = b->mant.data(); + pa = a->mant.begin(); + pb = b->mant.begin(); pa += a->cdigit - 1; pb += b->cdigit - 1; cdigits = max( a->cdigit, b->cdigit ); @@ -574,8 +574,8 @@ bool lessnum( PNUMBER a, PNUMBER b ) { int32_t diff; - MANTTYPE *pa; - MANTTYPE *pb; + vector::iterator pa; + vector::iterator pb; int32_t cdigits; int32_t ccdigits; MANTTYPE da; @@ -596,8 +596,8 @@ bool lessnum( PNUMBER a, PNUMBER b ) } else { - pa = a->mant.data(); - pb = b->mant.data(); + pa = a->mant.begin(); + pb = b->mant.begin(); pa += a->cdigit - 1; pb += b->cdigit - 1; cdigits = max( a->cdigit, b->cdigit );