From a8d2a93fe6f939df5163638f2f1502ff8b783db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 19 Oct 2017 18:07:50 +0200 Subject: [PATCH] [poincare] Fix bug in decimal Change-Id: I890cbbc0116d8b7d5a0c2530e9bf14eadf783454 --- poincare/src/decimal.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/poincare/src/decimal.cpp b/poincare/src/decimal.cpp index b23f8bb94..13dde4263 100644 --- a/poincare/src/decimal.cpp +++ b/poincare/src/decimal.cpp @@ -105,7 +105,7 @@ int Decimal::writeTextInBuffer(char * buffer, int bufferSize) const { } } currentChar += m_mantissa.writeTextInBuffer(buffer+currentChar, bufferSize-currentChar); - if (m_exponent > 0 && m_exponent < currentChar) { + if (m_exponent >= 0 && m_exponent < currentChar) { if (currentChar+1 >= bufferSize-1) { return bufferSize-1; } for (int i = currentChar; i > m_exponent; i--) { buffer[i+1] = buffer[i]; @@ -113,7 +113,7 @@ int Decimal::writeTextInBuffer(char * buffer, int bufferSize) const { buffer[m_exponent+1] = '.'; currentChar++; } - if (m_exponent > 0 && m_exponent > currentChar) { + if (m_exponent >= 0 && m_exponent > currentChar) { if (currentChar+1 >= bufferSize-1) { return bufferSize-1; } for (int i = currentChar; i < m_exponent; i++) { buffer[currentChar++] = '0'; @@ -150,6 +150,7 @@ Expression * Decimal::immediateSimplify() { int Decimal::compareToSameTypeExpression(const Expression * e) const { // We should not get there are decimal are turned into Rational before simplification assert(false); + return 0; } }