App: fix regression in Expression::getDepObjects

Avoid to add labels muliple times as reported here: https://forum.freecadweb.org/viewtopic.php?p=593994#p593994
This commit is contained in:
wmayer
2022-05-09 10:53:21 +02:00
parent 9d3040cc60
commit 1fbff0a616

View File

@@ -917,16 +917,17 @@ void Expression::getDepObjects(
std::vector<std::string> strings;
for(auto &dep : var.getDep(false, &strings)) {
DocumentObject *obj = dep.first;
if (obj->testStatus(ObjectStatus::Remove))
continue;
if (!obj->testStatus(ObjectStatus::Remove)) {
if (labels) {
std::copy(strings.begin(), strings.end(), std::back_inserter(*labels));
}
if (labels) {
std::copy(strings.begin(), strings.end(), std::back_inserter(*labels));
auto res = deps.insert(std::make_pair(obj, hidden));
if (!hidden || res.second)
res.first->second = hidden;
}
auto res = deps.insert(std::make_pair(obj, hidden));
if(!hidden || res.second)
res.first->second = hidden;
strings.clear();
}
}
}