aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/rtlil.cc10
-rw-r--r--kernel/rtlil.h4
2 files changed, 7 insertions, 7 deletions
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc
index 6eb698b2b..baa033401 100644
--- a/kernel/rtlil.cc
+++ b/kernel/rtlil.cc
@@ -2481,11 +2481,11 @@ void RTLIL::Cell::unsetPort(RTLIL::IdString portname)
}
}
-void RTLIL::Cell::setPort(RTLIL::IdString portname, const RTLIL::SigSpec &signal)
+void RTLIL::Cell::setPort(RTLIL::IdString portname, RTLIL::SigSpec signal)
{
auto r = connections_.insert(portname);
auto conn_it = r.first;
- if (conn_it->second == signal)
+ if (!r.second && conn_it->second == signal)
return;
for (auto mon : module->monitors)
@@ -2500,7 +2500,7 @@ void RTLIL::Cell::setPort(RTLIL::IdString portname, const RTLIL::SigSpec &signal
log_backtrace("-X- ", yosys_xtrace-1);
}
- conn_it->second = signal;
+ conn_it->second = std::move(signal);
}
const RTLIL::SigSpec &RTLIL::Cell::getPort(RTLIL::IdString portname) const
@@ -2556,9 +2556,9 @@ void RTLIL::Cell::unsetParam(RTLIL::IdString paramname)
parameters.erase(paramname);
}
-void RTLIL::Cell::setParam(RTLIL::IdString paramname, const RTLIL::Const &value)
+void RTLIL::Cell::setParam(RTLIL::IdString paramname, RTLIL::Const value)
{
- parameters[paramname] = value;
+ parameters[paramname] = std::move(value);
}
const RTLIL::Const &RTLIL::Cell::getParam(RTLIL::IdString paramname) const
diff --git a/kernel/rtlil.h b/kernel/rtlil.h
index deb677f68..c0f1c7fa8 100644
--- a/kernel/rtlil.h
+++ b/kernel/rtlil.h
@@ -1381,7 +1381,7 @@ public:
// access cell ports
bool hasPort(RTLIL::IdString portname) const;
void unsetPort(RTLIL::IdString portname);
- void setPort(RTLIL::IdString portname, const RTLIL::SigSpec &signal);
+ void setPort(RTLIL::IdString portname, RTLIL::SigSpec signal);
const RTLIL::SigSpec &getPort(RTLIL::IdString portname) const;
const dict<RTLIL::IdString, RTLIL::SigSpec> &connections() const;
@@ -1393,7 +1393,7 @@ public:
// access cell parameters
bool hasParam(RTLIL::IdString paramname) const;
void unsetParam(RTLIL::IdString paramname);
- void setParam(RTLIL::IdString paramname, const RTLIL::Const& value);
+ void setParam(RTLIL::IdString paramname, RTLIL::Const value);
const RTLIL::Const &getParam(RTLIL::IdString paramname) const;
void sort();