summaryrefslogtreecommitdiffstats
path: root/src/server/events/Mark.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-02-12 15:04:20 +0100
committerDavid Robillard <d@drobilla.net>2017-02-12 15:31:47 +0100
commitb1198f0842e6e4d6b1c01f07d91b42ef4a212788 (patch)
tree93fdf4da89a6f5f634707fb8c989e0d9ee1a3c65 /src/server/events/Mark.cpp
parent81d45973412c675e3c0b4a10b64d811a219feeae (diff)
downloadingen-b1198f0842e6e4d6b1c01f07d91b42ef4a212788.tar.gz
ingen-b1198f0842e6e4d6b1c01f07d91b42ef4a212788.tar.bz2
ingen-b1198f0842e6e4d6b1c01f07d91b42ef4a212788.zip
Use smart pointers to handle real-time memory disposal
Diffstat (limited to 'src/server/events/Mark.cpp')
-rw-r--r--src/server/events/Mark.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/server/events/Mark.cpp b/src/server/events/Mark.cpp
index c72cc14f..eee2d552 100644
--- a/src/server/events/Mark.cpp
+++ b/src/server/events/Mark.cpp
@@ -35,9 +35,6 @@ Mark::Mark(Engine& engine,
Mark::~Mark()
{
- for (const auto& g : _compiled_graphs) {
- delete g.second;
- }
}
bool
@@ -57,9 +54,10 @@ Mark::pre_process(PreProcessContext& ctx)
ctx.set_in_bundle(false);
if (!ctx.dirty_graphs().empty()) {
for (GraphImpl* g : ctx.dirty_graphs()) {
- CompiledGraph* cg = CompiledGraph::compile(g);
+ MPtr<CompiledGraph> cg = CompiledGraph::compile(
+ *_engine.maid(), *g);
if (cg) {
- _compiled_graphs.insert(std::make_pair(g, cg));
+ _compiled_graphs.insert(std::make_pair(g, std::move(cg)));
}
}
ctx.dirty_graphs().clear();
@@ -74,7 +72,7 @@ void
Mark::execute(RunContext& context)
{
for (auto& g : _compiled_graphs) {
- g.second = g.first->swap_compiled_graph(g.second);
+ g.first->set_compiled_graph(std::move(g.second));
}
}