From 17c410427569c5cbd050012a72044ed0da96d19c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Fri, 5 Jul 2019 18:22:02 +0200
Subject: [PATCH] ExprNode::removeTrendLeadLag(): pass map argument by
 const-reference rather than by value

---
 src/ExprNode.cc | 16 ++++++++--------
 src/ExprNode.hh | 18 +++++++++---------
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 94d7ad9e..a9ff7da6 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -752,7 +752,7 @@ NumConstNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-NumConstNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+NumConstNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   return const_cast<NumConstNode *>(this);
 }
@@ -1991,7 +1991,7 @@ VariableNode::countDiffs() const
 }
 
 expr_t
-VariableNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+VariableNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   if ((get_type() != SymbolType::trend && get_type() != SymbolType::logTrend) || lag == 0)
     return const_cast<VariableNode *>(this);
@@ -3830,7 +3830,7 @@ UnaryOpNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-UnaryOpNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+UnaryOpNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   expr_t argsubst = arg->removeTrendLeadLag(trend_symbols_map);
   return buildSimilarUnaryOpNode(argsubst, datatree);
@@ -5524,7 +5524,7 @@ BinaryOpNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-BinaryOpNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+BinaryOpNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   expr_t arg1subst = arg1->removeTrendLeadLag(trend_symbols_map);
   expr_t arg2subst = arg2->removeTrendLeadLag(trend_symbols_map);
@@ -6852,7 +6852,7 @@ TrinaryOpNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-TrinaryOpNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+TrinaryOpNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   expr_t arg1subst = arg1->removeTrendLeadLag(trend_symbols_map);
   expr_t arg2subst = arg2->removeTrendLeadLag(trend_symbols_map);
@@ -7383,7 +7383,7 @@ AbstractExternalFunctionNode::detrend(int symb_id, bool log_trend, expr_t trend)
 }
 
 expr_t
-AbstractExternalFunctionNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+AbstractExternalFunctionNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   vector<expr_t> arguments_subst;
   for (auto argument : arguments)
@@ -8985,7 +8985,7 @@ VarExpectationNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-VarExpectationNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+VarExpectationNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   cerr << "VarExpectationNode::removeTrendLeadLag not implemented." << endl;
   exit(EXIT_FAILURE);
@@ -9399,7 +9399,7 @@ PacExpectationNode::detrend(int symb_id, bool log_trend, expr_t trend) const
 }
 
 expr_t
-PacExpectationNode::removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const
+PacExpectationNode::removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const
 {
   return const_cast<PacExpectationNode *>(this);
 }
diff --git a/src/ExprNode.hh b/src/ExprNode.hh
index c2d04f5f..49e1bb62 100644
--- a/src/ExprNode.hh
+++ b/src/ExprNode.hh
@@ -572,7 +572,7 @@ class ExprNode
       virtual expr_t clone(DataTree &datatree) const = 0;
 
       //! Move a trend variable with lag/lead to time t by dividing/multiplying by its growth factor
-      virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const = 0;
+      virtual expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const = 0;
 
       //! Returns true if the expression is in static form (no lead, no lag, no expectation, no STEADY_STATE)
       virtual bool isInStaticForm() const = 0;
@@ -716,7 +716,7 @@ public:
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t clone(DataTree &datatree) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -799,7 +799,7 @@ public:
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t clone(DataTree &datatree) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -910,7 +910,7 @@ public:
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t clone(DataTree &datatree) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1024,7 +1024,7 @@ public:
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t clone(DataTree &datatree) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   //! Function to write out the oPowerNode in expr_t terms as opposed to writing out the function itself
   expr_t unpackPowerDeriv() const;
   //! Returns MULT_i*(lhs-rhs) = 0, creating multiplier MULT_i
@@ -1152,7 +1152,7 @@ public:
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t clone(DataTree &datatree) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1272,7 +1272,7 @@ public:
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t clone(DataTree &datatree) const override = 0;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1480,7 +1480,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1561,7 +1561,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
+  expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
-- 
GitLab