mirror of https://github.com/YosysHQ/yosys.git
Merge pull request #2130 from whitequark/cxxrtl-fix-split_by
cxxrtl: fix two buggy split_by functions
This commit is contained in:
commit
3dc32490e0
|
@ -474,14 +474,16 @@ std::vector<std::string> split_by(const std::string &str, const std::string &sep
|
|||
std::vector<std::string> result;
|
||||
size_t prev = 0;
|
||||
while (true) {
|
||||
size_t curr = str.find_first_of(sep, prev + 1);
|
||||
if (curr > str.size())
|
||||
curr = str.size();
|
||||
if (curr > prev + 1)
|
||||
result.push_back(str.substr(prev, curr - prev));
|
||||
if (curr == str.size())
|
||||
size_t curr = str.find_first_of(sep, prev);
|
||||
if (curr == std::string::npos) {
|
||||
std::string part = str.substr(prev);
|
||||
if (!part.empty()) result.push_back(part);
|
||||
break;
|
||||
prev = curr;
|
||||
} else {
|
||||
std::string part = str.substr(prev, curr - prev);
|
||||
if (!part.empty()) result.push_back(part);
|
||||
prev = curr + 1;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -136,15 +136,15 @@ class vcd_writer {
|
|||
std::vector<std::string> hierarchy;
|
||||
size_t prev = 0;
|
||||
while (true) {
|
||||
size_t curr = hier_name.find_first_of(' ', prev + 1);
|
||||
if (curr > hier_name.size())
|
||||
curr = hier_name.size();
|
||||
if (curr > prev + 1)
|
||||
hierarchy.push_back(hier_name.substr(prev, curr - prev));
|
||||
if (curr == hier_name.size())
|
||||
size_t curr = hier_name.find_first_of(' ', prev);
|
||||
if (curr == std::string::npos) {
|
||||
hierarchy.push_back(hier_name.substr(prev));
|
||||
break;
|
||||
} else {
|
||||
hierarchy.push_back(hier_name.substr(prev, curr - prev));
|
||||
prev = curr + 1;
|
||||
}
|
||||
}
|
||||
return hierarchy;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue