[apps/calculation] Fix calculation memoization

This commit is contained in:
Léa Saviot
2019-07-31 17:43:47 +02:00
committed by Émilie Feral
parent 849f9237dd
commit d027a01851

View File

@@ -25,13 +25,13 @@ ExpiringPointer<Calculation> 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<Calculation>(c);
}
c = bufferCalculationAtIndex(i);
m_memoizedCalculationPointers[i] = c;
m_memoizedCalculationPointers[i-m_indexOfFirstMemoizedCalculationPointer] = c;
return c;
}
// Slide the memoization buffer