Merge pull request #10418 from wwmayer/fix_cleanup_selection

Fix possible issues in selection node
This commit is contained in:
Chris Hennes
2023-08-28 22:07:17 -05:00
committed by GitHub
2 changed files with 8 additions and 8 deletions

View File

@@ -181,12 +181,7 @@ int SoFCSelectionContextEx::merge(int status, SoFCSelectionContextBasePtr &outpu
SoFCSelectionContextBasePtr input, SoNode *node)
{
auto ctx = std::dynamic_pointer_cast<SoFCSelectionContextEx>(input);
SoFCSelectionRoot* selectionNode;
if (node == nullptr) {
selectionNode = nullptr;
} else {
selectionNode = dynamic_cast<SoFCSelectionRoot*>(node);
}
SoFCSelectionRoot* selectionNode = dynamic_cast<SoFCSelectionRoot*>(node);
if(!ctx) {
if(selectionNode && selectionNode->hasColorOverride()) {

View File

@@ -1124,9 +1124,14 @@ SoFCSelectionContextBasePtr
SoFCSelectionRoot::getNodeContext2(Stack &stack, SoNode *node, SoFCSelectionContextBase::MergeFunc *merge)
{
SoFCSelectionContextBasePtr ret;
auto *back = dynamic_cast<SoFCSelectionRoot*>(stack.back());
if(stack.empty() || back == nullptr || back->contextMap2.empty())
if (stack.empty()) {
return ret;
}
auto *back = dynamic_cast<SoFCSelectionRoot*>(stack.back());
if (back == nullptr || back->contextMap2.empty()) {
return ret;
}
int status = 0;
auto &map = back->contextMap2;