rtlil: add AttrObject::{get,set}_string_attribute.
authorwhitequark <whitequark@whitequark.org>
Thu, 16 Apr 2020 21:43:03 +0000 (21:43 +0000)
committerwhitequark <whitequark@whitequark.org>
Thu, 16 Apr 2020 21:45:29 +0000 (21:45 +0000)
And make {get,set}_src_attribute use those functions.

kernel/rtlil.cc
kernel/rtlil.h

index 6996a02c45ccc0edfc64502ca0bb14f7db1d90f7..9ecad056fd2396a7786701c66be79907cb15e592 100644 (file)
@@ -289,6 +289,23 @@ bool RTLIL::AttrObject::get_bool_attribute(RTLIL::IdString id) const
        return it->second.as_bool();
 }
 
+void RTLIL::AttrObject::set_string_attribute(RTLIL::IdString id, string value)
+{
+       if (value.empty())
+               attributes.erase(id);
+       else
+               attributes[id] = value;
+}
+
+string RTLIL::AttrObject::get_string_attribute(RTLIL::IdString id) const
+{
+       std::string value;
+       const auto it = attributes.find(id);
+       if (it != attributes.end())
+               value = it->second.decode_string();
+       return value;
+}
+
 void RTLIL::AttrObject::set_strpool_attribute(RTLIL::IdString id, const pool<string> &data)
 {
        string attrval;
@@ -317,23 +334,6 @@ pool<string> RTLIL::AttrObject::get_strpool_attribute(RTLIL::IdString id) const
        return data;
 }
 
-void RTLIL::AttrObject::set_src_attribute(const std::string &src)
-{
-       if (src.empty())
-               attributes.erase(ID::src);
-       else
-               attributes[ID::src] = src;
-}
-
-std::string RTLIL::AttrObject::get_src_attribute() const
-{
-       std::string src;
-       const auto it = attributes.find(ID::src);
-       if (it != attributes.end())
-               src = it->second.decode_string();
-       return src;
-}
-
 bool RTLIL::Selection::selected_module(RTLIL::IdString mod_name) const
 {
        if (full_selection)
index 17f038e36806c8126e5fbbf195242ee85535d4e9..fe9e21c31c773759153de770492845c45ad654fb 100644 (file)
@@ -663,12 +663,19 @@ struct RTLIL::AttrObject
                return get_bool_attribute(ID::blackbox) || (!ignore_wb && get_bool_attribute(ID::whitebox));
        }
 
+       void set_string_attribute(RTLIL::IdString id, string value);
+       string get_string_attribute(RTLIL::IdString id) const;
+
        void set_strpool_attribute(RTLIL::IdString id, const pool<string> &data);
        void add_strpool_attribute(RTLIL::IdString id, const pool<string> &data);
        pool<string> get_strpool_attribute(RTLIL::IdString id) const;
 
-       void set_src_attribute(const std::string &src);
-       std::string get_src_attribute() const;
+       void set_src_attribute(const std::string &src) {
+               set_string_attribute(ID::src, src);
+       }
+       std::string get_src_attribute() const {
+               return get_string_attribute(ID::src);
+       }
 };
 
 struct RTLIL::SigChunk