diff --git a/Source/Processors/ProcessorGraph/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph/ProcessorGraph.cpp index ee18bf5b29fc59b32b4489e7ba932fcaea431ee1..6a5ff4bce2721fab184cc3b4a46b504ec9d541b3 100644 --- a/Source/Processors/ProcessorGraph/ProcessorGraph.cpp +++ b/Source/Processors/ProcessorGraph/ProcessorGraph.cpp @@ -728,15 +728,15 @@ void ProcessorGraph::removeProcessor(GenericProcessor* processor) //Look for the next source node. If none is found, set the sourceid to 0 for (int i = 0; i < getNumNodes() && newId == 0; i++) { - // Michael Borisov: here, for some reason (bug?) not all processors are of type GenericProcessor - // so we need to do a dynamic cast and check its results - // Otherwise the Release build crashes, and the Debug build fails runtime checks - GenericProcessor* p = dynamic_cast<GenericProcessor*>(getNode(i)->getProcessor()); - //GenericProcessor* p = static_cast<GenericProcessor*>(getNode(i)->getProcessor()); - if (p && p->isSource() && p->generatesTimestamps()) - { - newId = p->nodeId; - } + if (getNode(i)->nodeId != OUTPUT_NODE_ID) + { + GenericProcessor* p = dynamic_cast<GenericProcessor*>(getNode(i)->getProcessor()); + //GenericProcessor* p = static_cast<GenericProcessor*>(getNode(i)->getProcessor()); + if (p && p->isSource() && p->generatesTimestamps()) + { + newId = p->nodeId; + } + } } getMessageCenter()->setSourceNodeId(newId); }