get rid of piForeach

apply some code analyzer recommendations
ICU flag now check if libicu exists
prepare for more accurate growth of containers (limited PoT, then constantly increase size)
This commit is contained in:
2024-11-20 20:01:47 +03:00
parent 24112498ce
commit caa7880cc4
40 changed files with 415 additions and 320 deletions

View File

@@ -107,7 +107,7 @@ PIConfig::Entry PIConfig::Entry::_empty;
PIConfig::Branch PIConfig::Branch::allLeaves() {
Branch b;
b.delim = delim;
piForeach(Entry * i, *this) {
for (auto * i: *this) {
if (i->isLeaf())
b << i;
else
@@ -128,7 +128,7 @@ PIConfig::Entry & PIConfig::Branch::getValue(const PIString & vname, const PIStr
PIString name = tree.front();
tree.pop_front();
Entry * ce = 0;
piForeach(Entry * i, *this)
for (auto * i: *this)
if (i->_name == name) {
ce = i;
break;
@@ -140,7 +140,7 @@ PIConfig::Entry & PIConfig::Branch::getValue(const PIString & vname, const PIStr
if (exist != 0) *exist = false;
return _empty;
}
piForeach(PIString & i, tree) {
for (auto & i: tree) {
ce = ce->findChild(i);
if (ce == 0) {
_empty._name = vname;
@@ -158,11 +158,11 @@ PIConfig::Entry & PIConfig::Branch::getValue(const PIString & vname, const PIStr
PIConfig::Branch PIConfig::Branch::getValues(const PIString & name) {
Branch b;
b.delim = delim;
piForeach(Entry * i, *this) {
for (auto * i: *this) {
if (i->isLeaf()) {
if (i->_name.find(name) >= 0) b << i;
} else {
piForeach(Entry * j, i->_children)
for (auto * j: i->_children)
if (j->_name.find(name) >= 0) b << j;
}
}
@@ -173,7 +173,7 @@ PIConfig::Branch PIConfig::Branch::getValues(const PIString & name) {
PIConfig::Branch PIConfig::Branch::getLeaves() {
Branch b;
b.delim = delim;
piForeach(Entry * i, *this)
for (auto * i: *this)
if (i->isLeaf()) b << i;
return b;
}
@@ -182,7 +182,7 @@ PIConfig::Branch PIConfig::Branch::getLeaves() {
PIConfig::Branch PIConfig::Branch::getBranches() {
Branch b;
b.delim = delim;
piForeach(Entry * i, *this)
for (auto * i: *this)
if (!i->isLeaf()) b << i;
return b;
}
@@ -203,7 +203,7 @@ bool PIConfig::Branch::entryExists(const Entry * e, const PIString & name) const
if (e->_children.isEmpty()) {
return (e->_name == name);
}
piForeachC(Entry * i, e->_children)
for (const auto * i: e->_children)
if (entryExists(i, name)) return true;
return false;
}
@@ -212,7 +212,7 @@ bool PIConfig::Branch::entryExists(const Entry * e, const PIString & name) const
PIConfig::Entry & PIConfig::Entry::getValue(const PIString & vname, const PIString & def, bool * exist) {
PIStringList tree = vname.split(delim);
Entry * ce = this;
piForeach(PIString & i, tree) {
for (auto & i: tree) {
ce = ce->findChild(i);
if (ce == 0) {
_empty._name = vname;
@@ -230,7 +230,7 @@ PIConfig::Entry & PIConfig::Entry::getValue(const PIString & vname, const PIStri
PIConfig::Branch PIConfig::Entry::getValues(const PIString & vname) {
Branch b;
b.delim = delim;
piForeach(Entry * i, _children)
for (auto * i: _children)
if (i->_name.find(vname) >= 0) b << i;
return b;
}
@@ -240,7 +240,7 @@ bool PIConfig::Entry::entryExists(const Entry * e, const PIString & name) const
if (e->_children.isEmpty()) {
return (e->_name == name);
}
piForeachC(Entry * i, e->_children)
for (const auto * i: e->_children)
if (entryExists(i, name)) return true;
return false;
}
@@ -253,7 +253,7 @@ void PIConfig::Entry::coutt(std::ostream & s, const PIString & p) const {
s << p << _name << " = " << _value << std::endl;
else
std::cout << p << _name << std::endl;
piForeachC(Entry * i, _children)
for (const auto * i: _children)
i->coutt(s, nl);
}
#endif
@@ -265,7 +265,7 @@ void PIConfig::Entry::piCoutt(PICout s, const PIString & p) const {
s << p << _name << " = " << _value << " (" << _type << " " << _comment << ")" << PICoutManipulators::NewLine;
else
s << p << _name << PICoutManipulators::NewLine;
piForeachC(Entry * i, _children)
for (const auto * i: _children)
i->piCoutt(s, nl);
}
@@ -368,7 +368,7 @@ void PIConfig::_destroy() {
piDeleteSafety(stream);
if (own_dev && dev) delete dev;
dev = nullptr;
piForeach(PIConfig * c, inc_devs)
for (auto * c: inc_devs)
delete c;
inc_devs.clear();
}
@@ -445,7 +445,7 @@ bool PIConfig::isOpened() const {
PIConfig::Entry & PIConfig::getValue(const PIString & vname, const PIString & def, bool * exist) {
PIStringList tree = vname.split(delim);
Entry * ce = &root;
piForeach(PIString & i, tree) {
for (auto & i: tree) {
ce = ce->findChild(i);
if (ce == 0) {
if (exist != 0) *exist = false;
@@ -463,7 +463,7 @@ PIConfig::Entry & PIConfig::getValue(const PIString & vname, const PIString & de
PIConfig::Branch PIConfig::getValues(const PIString & vname) {
Branch b;
b.delim = delim;
piForeach(Entry * i, root._children)
for (auto * i: root._children)
if (i->_name.find(vname) >= 0) b << i;
return b;
};
@@ -477,7 +477,7 @@ void PIConfig::addEntry(const PIString & name, const PIString & value, const PIS
tree.pop_back();
Entry *te, *ce, *entry = &root;
if (tree.isEmpty()) toRoot = true;
piForeach(PIString & i, tree) {
for (auto & i: tree) {
te = entry->findChild(i);
if (te == 0) {
ce = new Entry();
@@ -550,7 +550,7 @@ void PIConfig::setValue(const PIString & name, const PIString & value, const PIS
int PIConfig::entryIndex(const PIString & name) {
PIStringList tree = name.split(delim);
Entry * ce = &root;
piForeach(PIString & i, tree) {
for (auto & i: tree) {
ce = ce->findChild(i);
if (ce == 0) return -1;
}
@@ -716,7 +716,7 @@ bool PIConfig::entryExists(const Entry * e, const PIString & name) const {
if (e->_children.isEmpty()) {
return (e->_name == name);
}
piForeachC(Entry * i, e->_children)
for (const auto * i: e->_children)
if (entryExists(i, name)) return true;
return false;
}
@@ -725,7 +725,7 @@ bool PIConfig::entryExists(const Entry * e, const PIString & name) const {
void PIConfig::updateIncludes() {
if (internal) return;
all_includes.clear();
piForeach(PIConfig * c, includes)
for (auto * c: includes)
all_includes << c->allLeaves();
}
@@ -744,7 +744,7 @@ PIString PIConfig::parseLine(PIString v) {
if (ex) {
r = me._value;
} else {
piForeachC(PIConfig::Entry * e, all_includes)
for (const auto * e: all_includes)
if (e->_full_name == w) {
r = e->_value;
break;
@@ -763,9 +763,7 @@ void PIConfig::parse() {
Entry *entry = 0, *te = 0, *ce = 0;
int ind, sind;
bool isNew = false, isPrefix = false, wasMultiline = false, isMultiline = false;
piForeach(PIConfig * c, inc_devs)
delete c;
inc_devs.clear();
piDeleteAllAndClear(inc_devs);
includes.clear();
if (!isOpened()) return;
_seekToBeginDev();
@@ -835,7 +833,7 @@ void PIConfig::parse() {
name = tree.back();
tree.pop_back();
entry = &root;
piForeachC(PIString & i, tree) {
for (const auto & i: tree) {
te = entry->findChild(i);
if (te == 0) {
ce = new Entry();