diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index ce32665bc6..93fe53d11b 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -961,7 +961,7 @@ AudioProcessorGraph::Node::Ptr AudioProcessorGraph::addNode (std::unique_ptr AudioProcessorGraph::removeNode (NodeID nodeId) +AudioProcessorGraph::Node::Ptr AudioProcessorGraph::removeNode (NodeID nodeId) { const ScopedLock sl (getCallbackLock()); @@ -970,23 +970,22 @@ std::unique_ptr AudioProcessorGraph::removeNode (NodeID nodeId) if (nodes.getUnchecked (i)->nodeID == nodeId) { disconnectNode (nodeId); - auto internalProcessor = nodes[i] != nullptr ? std::move (nodes[i]->processor) : nullptr; - nodes.remove (i); + auto node = nodes.removeAndReturn (i); topologyChanged(); - return internalProcessor; + return node; } } - return nullptr; + return {}; } -std::unique_ptr AudioProcessorGraph::removeNode (Node* node) +AudioProcessorGraph::Node::Ptr AudioProcessorGraph::removeNode (Node* node) { if (node != nullptr) return removeNode (node->nodeID); jassertfalse; - return nullptr; + return {}; } //============================================================================== diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h index f2716b5101..3fdf5e5f7a 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h @@ -231,12 +231,12 @@ public: /** Deletes a node within the graph which has the specified ID. This will also delete any connections that are attached to this node. */ - std::unique_ptr removeNode (NodeID); + Node::Ptr removeNode (NodeID); /** Deletes a node within the graph. This will also delete any connections that are attached to this node. */ - std::unique_ptr removeNode (Node*); + Node::Ptr removeNode (Node*); /** Returns the list of connections in the graph. */ std::vector getConnections() const;