mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-24 01:25:33 +00:00
Use set for strpool_attribute to maintain ordering, but keep some backwards compatibility
This commit is contained in:
parent
3a67468860
commit
8117ab228e
4 changed files with 16 additions and 2 deletions
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <stdexcept>
|
||||
#include <algorithm>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
@ -1001,6 +1002,11 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
pool(std::set<K> other) {
|
||||
for (auto it : other)
|
||||
insert(it);
|
||||
}
|
||||
|
||||
pool(const pool &other)
|
||||
{
|
||||
entries = other.entries;
|
||||
|
|
|
@ -708,6 +708,14 @@ void RTLIL::AttrObject::add_strpool_attribute(const RTLIL::IdString& id, const s
|
|||
set_strpool_attribute(id, union_data);
|
||||
}
|
||||
|
||||
void RTLIL::AttrObject::add_strpool_attribute(const RTLIL::IdString& id, const pool<string> &data)
|
||||
{
|
||||
std::set<string> union_data = get_strpool_attribute(id);
|
||||
union_data.insert(data.begin(), data.end());
|
||||
if (!union_data.empty())
|
||||
set_strpool_attribute(id, union_data);
|
||||
}
|
||||
|
||||
std::set<string> RTLIL::AttrObject::get_strpool_attribute(const RTLIL::IdString &id) const
|
||||
{
|
||||
std::set<string> data;
|
||||
|
|
|
@ -857,6 +857,7 @@ struct RTLIL::AttrObject
|
|||
|
||||
void set_strpool_attribute(const RTLIL::IdString& id, const std::set<string> &data);
|
||||
void add_strpool_attribute(const RTLIL::IdString& id, const std::set<string> &data);
|
||||
void add_strpool_attribute(const RTLIL::IdString& id, const pool<string> &data);
|
||||
std::set<string> get_strpool_attribute(const RTLIL::IdString &id) const;
|
||||
|
||||
void set_src_attribute(const std::string &src) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue