diff --git a/poincare/src/function.cpp b/poincare/src/function.cpp index d8ee6add4..706bad731 100644 --- a/poincare/src/function.cpp +++ b/poincare/src/function.cpp @@ -125,7 +125,7 @@ Expression Function::shallowReduce(ExpressionNode::ReductionContext reductionCon } Expression Function::deepReplaceReplaceableSymbols(Context * context, bool * didReplace) { - Expression e = context->expressionForSymbolAbstract(*this, true); + Expression e = context->expressionForSymbolAbstract(*this, false); if (e.isUninitialized()) { return *this; } diff --git a/poincare/src/symbol_abstract.cpp b/poincare/src/symbol_abstract.cpp index a6754aeec..41c2bfc6b 100644 --- a/poincare/src/symbol_abstract.cpp +++ b/poincare/src/symbol_abstract.cpp @@ -57,10 +57,7 @@ bool SymbolAbstract::matches(const SymbolAbstract & symbol, ExpressionTest test, } Expression SymbolAbstract::Expand(const SymbolAbstract & symbol, Context * context, bool clone) { - bool isFunction = symbol.type() == ExpressionNode::Type::Function; - /* Always clone the expression for Function because we are going to alter e - * by replacing all UnknownX in it. */ - Expression e = context->expressionForSymbolAbstract(symbol, clone || isFunction); + Expression e = context->expressionForSymbolAbstract(symbol, clone); /* Replace all the symbols iteratively. This prevents a memory failure when * symbols are defined circularly. */ e = Expression::ExpressionWithoutSymbols(e, context);