RTLIL: use {get,set}_string_attribute in {get,set}_strpool_attribute.
authorwhitequark <whitequark@whitequark.org>
Mon, 8 Jun 2020 19:02:48 +0000 (19:02 +0000)
committerwhitequark <whitequark@whitequark.org>
Mon, 8 Jun 2020 20:19:41 +0000 (20:19 +0000)
The only difference in behavior is that this removes the attribute
when the pool becomes empty.

kernel/rtlil.cc

index 1091133708e521996bdcf6043065faf91ba7c7a7..335c484566c79218143aa66f87382a31a92e307e 100644 (file)
@@ -319,7 +319,7 @@ void RTLIL::AttrObject::set_strpool_attribute(RTLIL::IdString id, const pool<str
                        attrval += "|";
                attrval += s;
        }
-       attributes[id] = RTLIL::Const(attrval);
+       set_string_attribute(id, attrval);
 }
 
 void RTLIL::AttrObject::add_strpool_attribute(RTLIL::IdString id, const pool<string> &data)
@@ -334,7 +334,7 @@ pool<string> RTLIL::AttrObject::get_strpool_attribute(RTLIL::IdString id) const
 {
        pool<string> data;
        if (attributes.count(id) != 0)
-               for (auto s : split_tokens(attributes.at(id).decode_string(), "|"))
+               for (auto s : split_tokens(get_string_attribute(id), "|"))
                        data.insert(s);
        return data;
 }