From e75701f0fad549a076fa52a69d353073d49d3aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 7 Aug 2019 14:28:44 +0200 Subject: [PATCH] [apps] Clean convertFloatToText uses --- apps/probability/calculation_controller.cpp | 11 +++++++---- apps/statistics/box_controller.cpp | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/probability/calculation_controller.cpp b/apps/probability/calculation_controller.cpp index b0ced6242..20716f46d 100644 --- a/apps/probability/calculation_controller.cpp +++ b/apps/probability/calculation_controller.cpp @@ -181,8 +181,10 @@ void CalculationController::willDisplayCellAtLocation(HighlightCell * cell, int if (field->isEditing()) { return; } - char buffer[PrintFloat::bufferSizeForFloatsWithPrecision(Constant::LargeNumberOfSignificantDigits)]; - PrintFloat::convertFloatToText(m_calculation->parameterAtIndex(i-1), buffer, PrintFloat::bufferSizeForFloatsWithPrecision(Constant::LargeNumberOfSignificantDigits), Constant::LargeNumberOfSignificantDigits, Preferences::PrintFloatMode::Decimal); + constexpr int precision = Constant::LargeNumberOfSignificantDigits; + constexpr int bufferSize = PrintFloat::bufferSizeForFloatsWithPrecision(precision); + char buffer[bufferSize]; + PrintFloat::convertFloatToText(m_calculation->parameterAtIndex(i-1), buffer, bufferSize, precision, Preferences::PrintFloatMode::Decimal); field->setText(buffer); } } @@ -282,9 +284,10 @@ void CalculationController::updateTitle() { if (currentChar >= k_titleBufferSize) { break; } - constexpr size_t bufferSize = PrintFloat::bufferSizeForFloatsWithPrecision(Constant::ShortNumberOfSignificantDigits); + constexpr int precision = Constant::ShortNumberOfSignificantDigits; + constexpr size_t bufferSize = PrintFloat::bufferSizeForFloatsWithPrecision(precision); char buffer[bufferSize]; - PrintFloat::convertFloatToText(m_law->parameterValueAtIndex(index), buffer, bufferSize, Constant::ShortNumberOfSignificantDigits, Preferences::PrintFloatMode::Decimal); + PrintFloat::convertFloatToText(m_law->parameterValueAtIndex(index), buffer, bufferSize, precision, Preferences::PrintFloatMode::Decimal); currentChar += strlcpy(m_titleBuffer+currentChar, buffer, k_titleBufferSize - currentChar); if (currentChar >= k_titleBufferSize) { break; diff --git a/apps/statistics/box_controller.cpp b/apps/statistics/box_controller.cpp index 54e6b30cb..96000b7d9 100644 --- a/apps/statistics/box_controller.cpp +++ b/apps/statistics/box_controller.cpp @@ -57,6 +57,7 @@ void BoxController::reloadBannerView() { double calculation = (m_store->*calculationMethods[selectedQuantile])(selectedSeriesIndex()); int numberOfChar = PoincareHelpers::ConvertFloatToText(calculation, buffer, bufferSize - 1, Constant::LargeNumberOfSignificantDigits); buffer[numberOfChar++] = ' '; + assert(numberOfChar <= bufferSize - 1); buffer[numberOfChar] = 0; m_view.bannerView()->calculationValue()->setText(buffer);