From d30f51ff00c854fb632cd59b975d3434013094ba Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 6 Apr 2023 18:44:00 +0100 Subject: [PATCH] AudioProcessorGraph: Ensure graph is rebuilt if any node bus layouts change --- .../processors/juce_AudioProcessorGraph.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index 15bfd6f3b4..fd562abd90 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -1566,27 +1566,28 @@ class RenderSequenceSignature public: RenderSequenceSignature (const PrepareSettings s, const Nodes& n, const Connections& c) - : settings (s), connections (c), nodes (getNodeIDs (n)) {} + : settings (s), connections (c), nodes (getNodeMap (n)) {} bool operator== (const RenderSequenceSignature& other) const { return tie() == other.tie(); } bool operator!= (const RenderSequenceSignature& other) const { return tie() != other.tie(); } private: - static std::vector getNodeIDs (const Nodes& n) + using NodeMap = std::map; + + static NodeMap getNodeMap (const Nodes& n) { const auto& nodeRefs = n.getNodes(); - std::vector result; - result.reserve ((size_t) nodeRefs.size()); + NodeMap result; for (const auto& node : nodeRefs) - result.push_back (node->nodeID); + result.emplace (node->nodeID, node->getProcessor()->getBusesLayout()); return result; } PrepareSettings settings; Connections connections; - std::vector nodes; + NodeMap nodes; }; //==============================================================================