diff --git a/poincare/src/expression.cpp b/poincare/src/expression.cpp index 0d613cb9d..cb7b88c0a 100644 --- a/poincare/src/expression.cpp +++ b/poincare/src/expression.cpp @@ -295,10 +295,18 @@ int Expression::defaultGetPolynomialCoefficients(Context & context, const char * } int Expression::getPolynomialReducedCoefficients(const char * symbolName, Expression coefficients[], Context & context, Preferences::AngleUnit angleUnit) const { + // Reset recursion count if needed + bool willHaveToUnlock = ResetRecursionCountAndLockReset(); + int degree = getPolynomialCoefficients(context, symbolName, coefficients); for (int i = 0; i <= degree; i++) { coefficients[i] = coefficients[i].deepReduce(context, angleUnit); } + + // Unlock recursion count reinitialization if needed + if (willHaveToUnlock) { + UnlockRecursionCountReset(); + } return degree; }