From 31b34b93bedfc0dd409c5da0a844e521dafdb40d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 25 Jul 2018 17:00:21 +0200 Subject: [PATCH] [poincare] Handle allocation failure in TreePool::deepCopy --- poincare/include/poincare/tree_pool.h | 4 ++++ 1 file changed, 4 insertions(+) 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);