diff --git a/poincare/include/poincare/tree_pool.h b/poincare/include/poincare/tree_pool.h index 74062cb36..3c198d700 100644 --- a/poincare/include/poincare/tree_pool.h +++ b/poincare/include/poincare/tree_pool.h @@ -42,6 +42,10 @@ public: TreeNode * deepCopy(TreeNode * node) { size_t size = node->deepSize(); void * ptr = alloc(size); + if (ptr == nullptr) { + node->failedAllocationStaticNode()->retain(); + return node->failedAllocationStaticNode(); + } memcpy(ptr, static_cast(node), size); TreeNode * copy = reinterpret_cast(ptr); renameNode(copy);