use basic casts to prevent needless item upgrades #7738

This commit is contained in:
Thomas Krijnen
2026-03-06 16:34:12 +01:00
parent f9486be172
commit 0469a9528b
2 changed files with 9 additions and 15 deletions
+7 -13
View File
@@ -1622,25 +1622,19 @@ typedef item const* ptr;
for (auto& i : deep->children) {
// @todo Sad... now that we have templated collection members,
// we can't generally use collection_base anymore as a cast target.
if (auto s = taxonomy::dcast<taxonomy::collection>(i)) {
if (auto s = std::dynamic_pointer_cast<taxonomy::collection>(i)) {
visit<taxonomy::collection>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::loop>(i)) {
} else if (auto s = std::dynamic_pointer_cast<taxonomy::loop>(i)) {
visit<taxonomy::loop>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::face>(i)) {
} else if (auto s = std::dynamic_pointer_cast<taxonomy::face>(i)) {
visit<taxonomy::face>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::shell>(i)) {
} else if (auto s = std::dynamic_pointer_cast<taxonomy::shell>(i)) {
visit<taxonomy::shell>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::solid>(i)) {
} else if (auto s = std::dynamic_pointer_cast<taxonomy::solid>(i)) {
visit<taxonomy::solid>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::loft>(i)) {
} else if (auto s = std::dynamic_pointer_cast<taxonomy::loft>(i)) {
visit<taxonomy::loft>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::boolean_result>(i)) {
} else if (auto s = std::dynamic_pointer_cast<taxonomy::boolean_result>(i)) {
visit<taxonomy::boolean_result>(s, fn);
}
else {