summaryrefslogtreecommitdiffstats
path: root/src/server/events/DisconnectAll.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-09-22 11:13:12 -0400
committerDavid Robillard <d@drobilla.net>2023-09-22 11:27:06 -0400
commit97f5ecf41bccbc6339a18c649cd7bfcd84b18312 (patch)
treeae717b716d76d30846ad1d8eb46967866ab6a140 /src/server/events/DisconnectAll.cpp
parent3192ce81f9f87e4e56393dd539c95185c7ef306d (diff)
downloadingen-97f5ecf41bccbc6339a18c649cd7bfcd84b18312.tar.gz
ingen-97f5ecf41bccbc6339a18c649cd7bfcd84b18312.tar.bz2
ingen-97f5ecf41bccbc6339a18c649cd7bfcd84b18312.zip
Use a regular unique_ptr for compiled graphs
Since these are always swapped by events which already have the ability to delete things after execution (by deleting them along with the event itself after processing), we can avoid the complexity and overhead of Raul::managed_ptr here by swapping the old graph for the new, retaining the owning reference to the old CompiledGraph in the event.
Diffstat (limited to 'src/server/events/DisconnectAll.cpp')
-rw-r--r--src/server/events/DisconnectAll.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/server/events/DisconnectAll.cpp b/src/server/events/DisconnectAll.cpp
index 296d6ddd..5f0e9a5e 100644
--- a/src/server/events/DisconnectAll.cpp
+++ b/src/server/events/DisconnectAll.cpp
@@ -32,7 +32,6 @@
#include "ingen/Node.hpp"
#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
-#include "raul/Maid.hpp"
#include <memory>
#include <mutex>
@@ -130,7 +129,7 @@ DisconnectAll::pre_process(PreProcessContext& ctx)
}
if (!_deleting && ctx.must_compile(*_parent)) {
- if (!(_compiled_graph = compile(*_engine.maid(), *_parent))) {
+ if (!(_compiled_graph = compile(*_parent))) {
return Event::pre_process_done(Status::COMPILATION_FAILED);
}
}
@@ -149,7 +148,7 @@ DisconnectAll::execute(RunContext& ctx)
}
if (_compiled_graph) {
- _parent->set_compiled_graph(std::move(_compiled_graph));
+ _compiled_graph = _parent->swap_compiled_graph(std::move(_compiled_graph));
}
}