From c2e1210ca2e7bbfdfd7a665f1940ce7886df2158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Tue, 6 Aug 2019 12:14:41 +0200 Subject: [PATCH] [poincare/print_float] Remove superfluous temporary buffer --- poincare/src/print_float.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/poincare/src/print_float.cpp b/poincare/src/print_float.cpp index dc327636c..66fc4ad21 100644 --- a/poincare/src/print_float.cpp +++ b/poincare/src/print_float.cpp @@ -120,15 +120,13 @@ int PrintFloat::convertFloatToText(T f, char * buffer, int bufferSize, assert(numberOfSignificantDigits > 0); assert(bufferSize > 0); - constexpr int tempBufferSize = PrintFloat::k_maxFloatBufferLength; - char tempBuffer[tempBufferSize]; int numberOfZerosRemoved = 0; - int requiredLength = ConvertFloatToTextPrivate(f, tempBuffer, tempBufferSize, numberOfSignificantDigits, mode, &numberOfZerosRemoved); + int requiredLength = ConvertFloatToTextPrivate(f, buffer, bufferSize, numberOfSignificantDigits, mode, &numberOfZerosRemoved); /* If the required buffer size overflows the buffer size, we first force the * display mode to scientific and decrease the number of significant digits to * fit the buffer size. */ if (mode == Preferences::PrintFloatMode::Decimal && requiredLength >= bufferSize) { - requiredLength = ConvertFloatToTextPrivate(f, tempBuffer, tempBufferSize, numberOfSignificantDigits, Preferences::PrintFloatMode::Scientific, &numberOfZerosRemoved); + requiredLength = ConvertFloatToTextPrivate(f, buffer, bufferSize, numberOfSignificantDigits, Preferences::PrintFloatMode::Scientific, &numberOfZerosRemoved); } if (requiredLength >= bufferSize) { /* If the buffer size is still too small and rounding is allowed, we only @@ -140,11 +138,9 @@ int PrintFloat::convertFloatToText(T f, char * buffer, int bufferSize, } int adjustedNumberOfSignificantDigits = numberOfSignificantDigits - numberOfZerosRemoved - requiredLength + bufferSize - 1; adjustedNumberOfSignificantDigits = adjustedNumberOfSignificantDigits < 1 ? 1 : adjustedNumberOfSignificantDigits; - requiredLength = ConvertFloatToTextPrivate(f, tempBuffer, tempBufferSize, adjustedNumberOfSignificantDigits, Preferences::PrintFloatMode::Scientific, &numberOfZerosRemoved); + requiredLength = ConvertFloatToTextPrivate(f, buffer, bufferSize, adjustedNumberOfSignificantDigits, Preferences::PrintFloatMode::Scientific, &numberOfZerosRemoved); } - requiredLength = requiredLength < bufferSize ? requiredLength : bufferSize-1; - strlcpy(buffer, tempBuffer, bufferSize); - return requiredLength; + return (requiredLength < bufferSize) ? requiredLength : (bufferSize - 1); } template