From 0f0c627844e9d453f1fe781e8eb26de6c2f5a501 Mon Sep 17 00:00:00 2001 From: Luc Grosheintz Date: Mon, 4 Sep 2023 17:11:22 +0200 Subject: [PATCH] Fix new dangling references. --- src/visitors/sympy_replace_solutions_visitor.cpp | 16 ++++++++-------- src/visitors/sympy_replace_solutions_visitor.hpp | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/visitors/sympy_replace_solutions_visitor.cpp b/src/visitors/sympy_replace_solutions_visitor.cpp index 34ba9e3498..9906c5577e 100644 --- a/src/visitors/sympy_replace_solutions_visitor.cpp +++ b/src/visitors/sympy_replace_solutions_visitor.cpp @@ -161,8 +161,8 @@ void SympyReplaceSolutionsVisitor::visit_statement_block(ast::StatementBlock& no void SympyReplaceSolutionsVisitor::try_replace_tagged_statement( const ast::Node& node, - const std::shared_ptr& get_lhs(const ast::Node& node), - const std::shared_ptr& get_rhs(const ast::Node& node)) { + std::shared_ptr get_lhs(const ast::Node& node), + std::shared_ptr get_rhs(const ast::Node& node)) { interleaves_counter.new_equation(true); const auto& statement = std::static_pointer_cast( @@ -212,11 +212,11 @@ void SympyReplaceSolutionsVisitor::try_replace_tagged_statement( void SympyReplaceSolutionsVisitor::visit_diff_eq_expression(ast::DiffEqExpression& node) { logger->debug("SympyReplaceSolutionsVisitor :: visit {}", to_nmodl(node)); - auto get_lhs = [](const ast::Node& node) -> const std::shared_ptr& { + auto get_lhs = [](const ast::Node& node) -> std::shared_ptr { return dynamic_cast(node).get_expression()->get_lhs(); }; - auto get_rhs = [](const ast::Node& node) -> const std::shared_ptr& { + auto get_rhs = [](const ast::Node& node) -> std::shared_ptr { return dynamic_cast(node).get_expression()->get_rhs(); }; @@ -225,11 +225,11 @@ void SympyReplaceSolutionsVisitor::visit_diff_eq_expression(ast::DiffEqExpressio void SympyReplaceSolutionsVisitor::visit_lin_equation(ast::LinEquation& node) { logger->debug("SympyReplaceSolutionsVisitor :: visit {}", to_nmodl(node)); - auto get_lhs = [](const ast::Node& node) -> const std::shared_ptr& { + auto get_lhs = [](const ast::Node& node) -> std::shared_ptr { return dynamic_cast(node).get_left_linxpression(); }; - auto get_rhs = [](const ast::Node& node) -> const std::shared_ptr& { + auto get_rhs = [](const ast::Node& node) -> std::shared_ptr { return dynamic_cast(node).get_left_linxpression(); }; @@ -239,11 +239,11 @@ void SympyReplaceSolutionsVisitor::visit_lin_equation(ast::LinEquation& node) { void SympyReplaceSolutionsVisitor::visit_non_lin_equation(ast::NonLinEquation& node) { logger->debug("SympyReplaceSolutionsVisitor :: visit {}", to_nmodl(node)); - auto get_lhs = [](const ast::Node& node) -> const std::shared_ptr& { + auto get_lhs = [](const ast::Node& node) -> std::shared_ptr { return dynamic_cast(node).get_lhs(); }; - auto get_rhs = [](const ast::Node& node) -> const std::shared_ptr& { + auto get_rhs = [](const ast::Node& node) -> std::shared_ptr { return dynamic_cast(node).get_rhs(); }; diff --git a/src/visitors/sympy_replace_solutions_visitor.hpp b/src/visitors/sympy_replace_solutions_visitor.hpp index 371b4788da..42bc4da2d0 100644 --- a/src/visitors/sympy_replace_solutions_visitor.hpp +++ b/src/visitors/sympy_replace_solutions_visitor.hpp @@ -253,8 +253,8 @@ class SympyReplaceSolutionsVisitor: public AstVisitor { */ void try_replace_tagged_statement( const ast::Node& node, - const std::shared_ptr& get_lhs(const ast::Node& node), - const std::shared_ptr& get_rhs(const ast::Node& node)); + std::shared_ptr get_lhs(const ast::Node& node), + std::shared_ptr get_rhs(const ast::Node& node)); /** * \struct InterleavesCounter