diff --git a/apps/sequence/cache_context.cpp b/apps/sequence/cache_context.cpp index cda8b28c7..47c6f5064 100644 --- a/apps/sequence/cache_context.cpp +++ b/apps/sequence/cache_context.cpp @@ -7,7 +7,7 @@ namespace Sequence { template CacheContext::CacheContext(Context * parentContext) : - VariableContext('n', parentContext), + VariableContext("n", parentContext), m_values{{NAN, NAN}, {NAN, NAN}} { diff --git a/poincare/include/poincare/variable_context.h b/poincare/include/poincare/variable_context.h index 10ad9f0a3..616cb2912 100644 --- a/poincare/include/poincare/variable_context.h +++ b/poincare/include/poincare/variable_context.h @@ -9,7 +9,7 @@ namespace Poincare { template class VariableContext : public Context { public: - VariableContext(char name, Context * parentContext = nullptr); + VariableContext(const char * name, Context * parentContext = nullptr); void setApproximationForVariable(T value); // Context @@ -17,7 +17,7 @@ public: const Expression expressionForSymbol(const Symbol & symbol) override; private: - char m_name; + const char * m_name; Float m_value; Context * m_parentContext; }; diff --git a/poincare/src/sequence.cpp b/poincare/src/sequence.cpp index 85ca379ca..851cdb08c 100644 --- a/poincare/src/sequence.cpp +++ b/poincare/src/sequence.cpp @@ -24,7 +24,7 @@ Evaluation SequenceNode::templatedApproximate(Context& context, Preferences:: if (std::isnan(start) || std::isnan(end) || start != (int)start || end != (int)end || end - start > k_maxNumberOfSteps) { return Complex::Undefined(); } - VariableContext nContext = VariableContext('n', &context); + VariableContext nContext = VariableContext("n", &context); Evaluation result = Complex((T)emptySequenceValue()); for (int i = (int)start; i <= (int)end; i++) { if (Expression::shouldStopProcessing()) { diff --git a/poincare/src/variable_context.cpp b/poincare/src/variable_context.cpp index b598879eb..12dcf4021 100644 --- a/poincare/src/variable_context.cpp +++ b/poincare/src/variable_context.cpp @@ -7,7 +7,7 @@ namespace Poincare { template -VariableContext::VariableContext(char name, Context * parentContext) : +VariableContext::VariableContext(const char * name, Context * parentContext) : m_name(name), m_value(Float(NAN)), m_parentContext(parentContext) @@ -21,7 +21,7 @@ void VariableContext::setApproximationForVariable(T value) { template void VariableContext::setExpressionForSymbolName(const Expression & expression, const Symbol & symbol, Context & context) { - if (symbol.name() == m_name) { + if (strcmp(symbol.name(), m_name) == 0) { if (expression.isUninitialized()) { return; } @@ -33,7 +33,7 @@ void VariableContext::setExpressionForSymbolName(const Expression & expressio template const Expression VariableContext::expressionForSymbol(const Symbol & symbol) { - if (symbol.name() == m_name) { + if (strcmp(symbol.name(), m_name) == 0) { return m_value; } else { return m_parentContext->expressionForSymbol(symbol);