From 4e8cd02d3f38f91e1015c19f352b0bc3fc49c1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Fri, 21 Sep 2018 17:34:04 +0200 Subject: [PATCH] [calculation] Fix memoization: hold the calculation and not its address which is likely to have changed --- apps/calculation/history_view_cell.cpp | 6 +++--- apps/calculation/history_view_cell.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/calculation/history_view_cell.cpp b/apps/calculation/history_view_cell.cpp index 3db472b29..2040ca0b9 100644 --- a/apps/calculation/history_view_cell.cpp +++ b/apps/calculation/history_view_cell.cpp @@ -9,7 +9,7 @@ namespace Calculation { HistoryViewCell::HistoryViewCell(Responder * parentResponder) : Responder(parentResponder), - m_calculation(nullptr), + m_calculation(), m_inputLayout(), m_exactOutputLayout(), m_approximateOutputLayout(), @@ -95,10 +95,10 @@ void HistoryViewCell::layoutSubviews() { } void HistoryViewCell::setCalculation(Calculation * calculation) { - if (m_calculation != nullptr && *calculation == *m_calculation) { + if (*calculation == m_calculation) { return; } - m_calculation = calculation; + m_calculation = *calculation; m_inputLayout = calculation->createInputLayout(); m_inputView.setLayout(m_inputLayout); App * calculationApp = (App *)app(); diff --git a/apps/calculation/history_view_cell.h b/apps/calculation/history_view_cell.h index 0892cba9b..0d6462937 100644 --- a/apps/calculation/history_view_cell.h +++ b/apps/calculation/history_view_cell.h @@ -36,7 +36,7 @@ public: Shared::ScrollableExactApproximateExpressionsView * outputView(); private: constexpr static KDCoordinate k_resultWidth = 80; - Calculation * m_calculation; + Calculation m_calculation; Poincare::Layout m_inputLayout; Poincare::Layout m_exactOutputLayout; Poincare::Layout m_approximateOutputLayout;