[sequence] Cache context does not need to be a variable context

Fix crash: u(n) = n(n-1) would crash at evaluation
This commit is contained in:
Émilie Feral
2019-04-16 13:54:05 +02:00
parent 60b577e199
commit e615172cbb
2 changed files with 11 additions and 5 deletions

View File

@@ -8,9 +8,9 @@ namespace Sequence {
template<typename T>
CacheContext<T>::CacheContext(Context * parentContext) :
VariableContext("n", parentContext),
m_values{{NAN, NAN},
{NAN, NAN}}
{NAN, NAN}},
m_parentContext(parentContext)
{
}
@@ -24,7 +24,12 @@ const Expression CacheContext<T>::expressionForSymbol(const SymbolAbstract & sym
Symbol s = const_cast<Symbol &>(static_cast<const Symbol &>(symbol));
return Float<T>::Builder(m_values[nameIndexForSymbol(s)][rankIndexForSymbol(s)]);
}
return VariableContext::expressionForSymbol(symbol, clone);
return m_parentContext->expressionForSymbol(symbol, clone);
}
template<typename T>
void CacheContext<T>::setExpressionForSymbol(const Expression & expression, const SymbolAbstract & symbol, Context & context) {
m_parentContext->setExpressionForSymbol(expression, symbol, context);
}
template<typename T>