diff --git a/poincare/include/poincare/tree_reference.h b/poincare/include/poincare/tree_reference.h index ef60f88a8..c084e5e04 100644 --- a/poincare/include/poincare/tree_reference.h +++ b/poincare/include/poincare/tree_reference.h @@ -279,7 +279,9 @@ protected: } private: void setTo(const TreeReference & tr) { - if (*this == tr) { + /* We cannot use (*this)==tr because tr would need to be casted to + * TreeReference, which calls setTo and triggers an infinite loop */ + if (identifier() == tr.identifier()) { return; } TreeNode * currentNode = node();