From a26dc4be79b1c59f8955eebca6fe2e0cc33bfb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 11 Jun 2020 12:02:48 +0200 Subject: [PATCH] [apps/calculation/additional_outputs] Expression::removeUnit can be called on reduced expression only --- apps/calculation/additional_outputs/unit_list_controller.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/calculation/additional_outputs/unit_list_controller.cpp b/apps/calculation/additional_outputs/unit_list_controller.cpp index 5f15c86a5..3c48787ad 100644 --- a/apps/calculation/additional_outputs/unit_list_controller.cpp +++ b/apps/calculation/additional_outputs/unit_list_controller.cpp @@ -80,6 +80,8 @@ void UnitListController::setExpression(Poincare::Expression e) { } if (canChangeUnitPrefix) { Expression newUnits; + // Reduce to be able to removeUnit + PoincareHelpers::Reduce(&m_memoizedExpressions[currentExpressionIndex], App::app()->localContext(), ExpressionNode::ReductionTarget::User); m_memoizedExpressions[currentExpressionIndex] = m_memoizedExpressions[currentExpressionIndex].removeUnit(&newUnits); double value = Shared::PoincareHelpers::ApproximateToScalar(m_memoizedExpressions[currentExpressionIndex], App::app()->localContext()); ExpressionNode::ReductionContext reductionContext(