summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/amount.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/amount.cc b/src/amount.cc
index 6479ca3d..7f418ac3 100644
--- a/src/amount.cc
+++ b/src/amount.cc
@@ -243,10 +243,10 @@ namespace {
return amount_t::precision_t(exp);
#else
- int decpt, sign;
+ int decpt, sign;
char * buf = dtoa(val, 0, 0, &decpt, &sign, NULL);
char * result;
- int len = std::strlen(buf);
+ int len = std::strlen(buf);
if (decpt <= len) {
decpt = len - decpt;
@@ -256,7 +256,7 @@ namespace {
// order to convert this buffer into an integer.
int zeroes = decpt - len;
- result = new char[len + zeroes];
+ result = new char[len + zeroes + 1];
std::strcpy(result, buf);
int i;
@@ -268,7 +268,7 @@ namespace {
}
if (sign) {
- char * newbuf = new char[std::strlen(result ? result : buf) + 4];
+ char * newbuf = new char[std::strlen(result ? result : buf) + 2];
newbuf[0] = '-';
std::strcpy(&newbuf[1], result ? result : buf);
mpz_set_str(dest, newbuf, 10);