From 0aa93080066ca16f7566213c083363dc7690f8cf Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Fri, 9 Aug 2013 10:46:11 +0200 Subject: [PATCH] Revert "Fix a memory leak in ExpressionParser.cpp" This reverts commit cce809ac90cc195f0c88a6cc788b3ff7359083a5. The code was actually correct: "expr" is never allocated when an error is returned. This means when the expression parser fails, deleting "expr" means deleting an uninitialized pointer. --- .../InputCommon/Src/ControllerInterface/ExpressionParser.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp b/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp index 1186551bf6..d91fbc587c 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/ExpressionParser.cpp @@ -549,10 +549,7 @@ ExpressionParseStatus ParseExpressionInner(std::string str, ControlFinder &finde Parser p(tokens, finder); status = p.Parse(&expr); if (status != EXPRESSION_PARSE_SUCCESS) - { - delete expr; return status; - } *expr_out = expr; return EXPRESSION_PARSE_SUCCESS;