Use compiler-generated default constructor for RTLIL::Const::Const
authorHenner Zeller <h.zeller@acm.org>
Mon, 6 Jun 2022 20:03:47 +0000 (13:03 -0700)
committerLofty <dan.ravensloft@gmail.com>
Thu, 9 Jun 2022 15:07:45 +0000 (16:07 +0100)
No need for a manual implementation.
While at it: have the constructor that takes a string take a
const string reference instead to avoid a copy.

kernel/rtlil.cc
kernel/rtlil.h

index 72dcb89af22e51fae7f61229a34270373689b730..8346b56e05a95e3a9820d6643c7d8f86de187631 100644 (file)
@@ -204,7 +204,7 @@ RTLIL::Const::Const()
        flags = RTLIL::CONST_FLAG_NONE;
 }
 
-RTLIL::Const::Const(std::string str)
+RTLIL::Const::Const(const std::string &str)
 {
        flags = RTLIL::CONST_FLAG_STRING;
        bits.reserve(str.size() * 8);
@@ -243,14 +243,6 @@ RTLIL::Const::Const(const std::vector<bool> &bits)
                this->bits.emplace_back(b ? State::S1 : State::S0);
 }
 
-RTLIL::Const::Const(const RTLIL::Const &c)
-{
-       flags = c.flags;
-       this->bits.reserve(c.size());
-       for (const auto &b : c.bits)
-               this->bits.push_back(b);
-}
-
 bool RTLIL::Const::operator <(const RTLIL::Const &other) const
 {
        if (bits.size() != other.bits.size())
index d8300f1593ec4a3a97820025f3e4df25da70d893..7a0b6b9c7b3bc4bed75e8dde5177d6925d3a4e1c 100644 (file)
@@ -636,12 +636,12 @@ struct RTLIL::Const
        std::vector<RTLIL::State> bits;
 
        Const();
-       Const(std::string str);
+       Const(const std::string &str);
        Const(int val, int width = 32);
        Const(RTLIL::State bit, int width = 1);
        Const(const std::vector<RTLIL::State> &bits) : bits(bits) { flags = CONST_FLAG_NONE; }
        Const(const std::vector<bool> &bits);
-       Const(const RTLIL::Const &c);
+       Const(const RTLIL::Const &c) = default;
        RTLIL::Const &operator =(const RTLIL::Const &other) = default;
 
        bool operator <(const RTLIL::Const &other) const;