diff --git a/apps/calculation/calculation_store.cpp b/apps/calculation/calculation_store.cpp index d30071a1c..de91ff1d6 100644 --- a/apps/calculation/calculation_store.cpp +++ b/apps/calculation/calculation_store.cpp @@ -25,13 +25,13 @@ ExpiringPointer CalculationStore::calculationAtIndex(int i) { assert(m_indexOfFirstMemoizedCalculationPointer >= 0); if (i >= m_indexOfFirstMemoizedCalculationPointer && i < m_indexOfFirstMemoizedCalculationPointer + k_numberOfMemoizedCalculationPointers) { // The calculation is within the range of memoized calculations - Calculation * c = m_memoizedCalculationPointers[i]; + Calculation * c = m_memoizedCalculationPointers[i-m_indexOfFirstMemoizedCalculationPointer]; if (c != nullptr) { // The pointer was memoized return ExpiringPointer(c); } c = bufferCalculationAtIndex(i); - m_memoizedCalculationPointers[i] = c; + m_memoizedCalculationPointers[i-m_indexOfFirstMemoizedCalculationPointer] = c; return c; } // Slide the memoization buffer