From 5fd415eb9eac9be2cd8573198c736da8fa259be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 9 Aug 2018 16:43:36 +0200 Subject: [PATCH] [poincare] Register Static Allocation Failure if required --- poincare/src/addition.cpp | 1 + poincare/src/char_layout_node.cpp | 1 + poincare/src/decimal.cpp | 1 + poincare/src/division.cpp | 3 ++- poincare/src/float.cpp | 1 + poincare/src/fraction_layout_node.cpp | 1 + poincare/src/ghost_node.cpp | 6 +++--- poincare/src/horizontal_layout_node.cpp | 1 + poincare/src/infinity.cpp | 1 + poincare/src/integer.cpp | 1 + poincare/src/layout_node.cpp | 6 +++--- poincare/src/matrix_complex.cpp | 1 + poincare/src/multiplication.cpp | 1 + poincare/src/opposite.cpp | 1 + poincare/src/parenthesis.cpp | 1 + poincare/src/power.cpp | 1 + poincare/src/rational.cpp | 1 + poincare/src/subtraction.cpp | 1 + poincare/src/symbol.cpp | 1 + poincare/src/undefined.cpp | 1 + poincare/src/vertical_offset_layout_node.cpp | 1 + 21 files changed, 26 insertions(+), 7 deletions(-) diff --git a/poincare/src/addition.cpp b/poincare/src/addition.cpp index b70817250..a73eb89e5 100644 --- a/poincare/src/addition.cpp +++ b/poincare/src/addition.cpp @@ -11,6 +11,7 @@ namespace Poincare { AdditionNode * AdditionNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/char_layout_node.cpp b/poincare/src/char_layout_node.cpp index 17d98b7dc..2d99a356b 100644 --- a/poincare/src/char_layout_node.cpp +++ b/poincare/src/char_layout_node.cpp @@ -6,6 +6,7 @@ namespace Poincare { CharLayoutNode * CharLayoutNode::FailedAllocationStaticNode() { static AllocationFailureLayoutNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/decimal.cpp b/poincare/src/decimal.cpp index e7738e63c..30f3f0b42 100644 --- a/poincare/src/decimal.cpp +++ b/poincare/src/decimal.cpp @@ -32,6 +32,7 @@ void DecimalNode::setValue(native_uint_t * mantissaDigits, size_t mantissaSize, DecimalNode * DecimalNode::FailedAllocationStaticNode() { static AllocationFailureDecimalNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/division.cpp b/poincare/src/division.cpp index f798f6036..205a2784d 100644 --- a/poincare/src/division.cpp +++ b/poincare/src/division.cpp @@ -15,8 +15,9 @@ extern "C" { namespace Poincare { -DivisionNode * FailedAllocationStaticNode() { +DivisionNode * DivisionNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/float.cpp b/poincare/src/float.cpp index d51f7a41e..e2726c03f 100644 --- a/poincare/src/float.cpp +++ b/poincare/src/float.cpp @@ -5,6 +5,7 @@ namespace Poincare { template FloatNode * FloatNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode> failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/fraction_layout_node.cpp b/poincare/src/fraction_layout_node.cpp index 8c6f7e5e0..9ff32359a 100644 --- a/poincare/src/fraction_layout_node.cpp +++ b/poincare/src/fraction_layout_node.cpp @@ -12,6 +12,7 @@ static inline KDCoordinate max(KDCoordinate x, KDCoordinate y) { return x > y ? FractionLayoutNode * FractionLayoutNode::FailedAllocationStaticNode() { static AllocationFailureLayoutNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/ghost_node.cpp b/poincare/src/ghost_node.cpp index df3523d84..14557f53b 100644 --- a/poincare/src/ghost_node.cpp +++ b/poincare/src/ghost_node.cpp @@ -3,9 +3,9 @@ namespace Poincare { GhostNode * GhostNode::FailedAllocationStaticNode() { - static AllocationFailedGhostNode FailureNode; - TreePool::sharedPool()->registerStaticNodeIfRequired(&FailureNode); - return &FailureNode; + static AllocationFailedGhostNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); + return &failure; } } diff --git a/poincare/src/horizontal_layout_node.cpp b/poincare/src/horizontal_layout_node.cpp index d94063e46..c1bfea47f 100644 --- a/poincare/src/horizontal_layout_node.cpp +++ b/poincare/src/horizontal_layout_node.cpp @@ -8,6 +8,7 @@ static inline KDCoordinate maxCoordinate(KDCoordinate c1, KDCoordinate c2) { ret HorizontalLayoutNode * HorizontalLayoutNode::FailedAllocationStaticNode() { static AllocationFailureLayoutNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/infinity.cpp b/poincare/src/infinity.cpp index 044c01bdc..37d9b77c1 100644 --- a/poincare/src/infinity.cpp +++ b/poincare/src/infinity.cpp @@ -12,6 +12,7 @@ namespace Poincare { InfinityNode * InfinityNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/integer.cpp b/poincare/src/integer.cpp index 39e4b8ae1..086a92562 100644 --- a/poincare/src/integer.cpp +++ b/poincare/src/integer.cpp @@ -355,6 +355,7 @@ NaturalIntegerPointer::NaturalIntegerPointer(native_uint_t * buffer, size_t size IntegerNode * IntegerNode::FailedAllocationStaticNode() { static AllocationFailureIntegerNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/layout_node.cpp b/poincare/src/layout_node.cpp index d57e45d8a..933667291 100644 --- a/poincare/src/layout_node.cpp +++ b/poincare/src/layout_node.cpp @@ -68,9 +68,9 @@ void LayoutNode::invalidAllSizesPositionsAndBaselines() { // TreeNode TreeNode * LayoutNode::FailedAllocationStaticNode() { - static AllocationFailedLayoutNode FailureNode; - TreePool::sharedPool()->registerStaticNodeIfRequired(&FailureNode); - return &FailureNode; + static AllocationFailedLayoutNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); + return &failure; } // Tree navigation diff --git a/poincare/src/matrix_complex.cpp b/poincare/src/matrix_complex.cpp index 737adad5e..06c01a8c2 100644 --- a/poincare/src/matrix_complex.cpp +++ b/poincare/src/matrix_complex.cpp @@ -12,6 +12,7 @@ namespace Poincare { template MatrixComplexNode * MatrixComplexNode::FailedAllocationStaticNode() { static AllocationFailureMatrixComplexNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/multiplication.cpp b/poincare/src/multiplication.cpp index 8ceac8080..d0ba836d7 100644 --- a/poincare/src/multiplication.cpp +++ b/poincare/src/multiplication.cpp @@ -21,6 +21,7 @@ namespace Poincare { MultiplicationNode * MultiplicationNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/opposite.cpp b/poincare/src/opposite.cpp index c71e25a25..c0af14f62 100644 --- a/poincare/src/opposite.cpp +++ b/poincare/src/opposite.cpp @@ -15,6 +15,7 @@ namespace Poincare { OppositeNode * OppositeNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/parenthesis.cpp b/poincare/src/parenthesis.cpp index 0053d9100..234c0df17 100644 --- a/poincare/src/parenthesis.cpp +++ b/poincare/src/parenthesis.cpp @@ -6,6 +6,7 @@ namespace Poincare { ParenthesisNode * ParenthesisNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/power.cpp b/poincare/src/power.cpp index a5919efda..4eb186176 100644 --- a/poincare/src/power.cpp +++ b/poincare/src/power.cpp @@ -32,6 +32,7 @@ namespace Poincare { PowerNode * PowerNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/rational.cpp b/poincare/src/rational.cpp index c54576f9c..179b171c0 100644 --- a/poincare/src/rational.cpp +++ b/poincare/src/rational.cpp @@ -24,6 +24,7 @@ void RationalNode::setDigits(native_uint_t * numeratorDigits, size_t numeratorSi RationalNode * RationalNode::FailedAllocationStaticNode() { static AllocationFailureRationalNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/subtraction.cpp b/poincare/src/subtraction.cpp index b3989f782..a83d8c23f 100644 --- a/poincare/src/subtraction.cpp +++ b/poincare/src/subtraction.cpp @@ -11,6 +11,7 @@ namespace Poincare { SubtractionNode * SubtractionNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/symbol.cpp b/poincare/src/symbol.cpp index e07584f2a..811411d12 100644 --- a/poincare/src/symbol.cpp +++ b/poincare/src/symbol.cpp @@ -15,6 +15,7 @@ namespace Poincare { SymbolNode * SymbolNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/undefined.cpp b/poincare/src/undefined.cpp index 7d0d2c2ab..50df4fc84 100644 --- a/poincare/src/undefined.cpp +++ b/poincare/src/undefined.cpp @@ -11,6 +11,7 @@ namespace Poincare { UndefinedNode * UndefinedNode::FailedAllocationStaticNode() { static AllocationFailureExpressionNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; } diff --git a/poincare/src/vertical_offset_layout_node.cpp b/poincare/src/vertical_offset_layout_node.cpp index 4c48d3f26..92158f4bb 100644 --- a/poincare/src/vertical_offset_layout_node.cpp +++ b/poincare/src/vertical_offset_layout_node.cpp @@ -11,6 +11,7 @@ namespace Poincare { VerticalOffsetLayoutNode * VerticalOffsetLayoutNode::FailedAllocationStaticNode() { static AllocationFailureLayoutNode failure; + TreePool::sharedPool()->registerStaticNodeIfRequired(&failure); return &failure; }