diff options
-rw-r--r-- | idlc/inc/idlc/astexpression.hxx | 10 | ||||
-rw-r--r-- | idlc/source/astexpression.cxx | 18 |
2 files changed, 16 insertions, 12 deletions
diff --git a/idlc/inc/idlc/astexpression.hxx b/idlc/inc/idlc/astexpression.hxx index deb0da48d211..6723297e2551 100644 --- a/idlc/inc/idlc/astexpression.hxx +++ b/idlc/inc/idlc/astexpression.hxx @@ -19,6 +19,10 @@ #ifndef INCLUDED_IDLC_INC_IDLC_ASTEXPRESSION_HXX #define INCLUDED_IDLC_INC_IDLC_ASTEXPRESSION_HXX +#include <sal/config.h> + +#include <memory> + #include <idlc/idlc.hxx> // Enum to define all the different operators to combine expressions @@ -120,9 +124,9 @@ private: // Fill out the lineno, filename and definition scope details void fillDefinitionDetails(); // Evaluate different sets of operators - AstExprValue* eval_bin_op(); - AstExprValue* eval_bit_op(); - AstExprValue* eval_un_op(); + std::unique_ptr<AstExprValue> eval_bin_op(); + std::unique_ptr<AstExprValue> eval_bit_op(); + std::unique_ptr<AstExprValue> eval_un_op(); AstExprValue* eval_symbol(); AstScope* m_pScope; // scope defined in diff --git a/idlc/source/astexpression.cxx b/idlc/source/astexpression.cxx index 3798b7ac04e9..593cdb65cd14 100644 --- a/idlc/source/astexpression.cxx +++ b/idlc/source/astexpression.cxx @@ -885,19 +885,19 @@ void AstExpression::evaluate() case EC_mul: case EC_div: case EC_mod: - m_exprValue = eval_bin_op(); + m_exprValue = eval_bin_op().release(); break; case EC_or: case EC_xor: case EC_and: case EC_left: case EC_right: - m_exprValue = eval_bit_op(); + m_exprValue = eval_bit_op().release(); break; case EC_u_plus: case EC_u_minus: case EC_bit_neg: - m_exprValue = eval_un_op(); + m_exprValue = eval_un_op().release(); break; case EC_symbol: m_exprValue = eval_symbol(); @@ -907,7 +907,7 @@ void AstExpression::evaluate() } } -AstExprValue* AstExpression::eval_bin_op() +std::unique_ptr<AstExprValue> AstExpression::eval_bin_op() { ExprType eType = ET_double; @@ -955,10 +955,10 @@ AstExprValue* AstExpression::eval_bin_op() return NULL; } - return retval.release(); + return retval; } -AstExprValue* AstExpression::eval_bit_op() +std::unique_ptr<AstExprValue> AstExpression::eval_bit_op() { if (m_subExpr1 == NULL || m_subExpr2 == NULL) return NULL; @@ -997,10 +997,10 @@ AstExprValue* AstExpression::eval_bit_op() return NULL; } - return retval.release(); + return retval; } -AstExprValue* AstExpression::eval_un_op() +std::unique_ptr<AstExprValue> AstExpression::eval_un_op() { if (m_subExpr1 == NULL) return NULL; @@ -1030,7 +1030,7 @@ AstExprValue* AstExpression::eval_un_op() return NULL; } - return retval.release(); + return retval; } AstExprValue* AstExpression::eval_symbol() |