diff options
author | David Robillard <d@drobilla.net> | 2017-02-12 15:04:20 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-02-12 15:31:47 +0100 |
commit | b1198f0842e6e4d6b1c01f07d91b42ef4a212788 (patch) | |
tree | 93fdf4da89a6f5f634707fb8c989e0d9ee1a3c65 /src/server/events/Mark.cpp | |
parent | 81d45973412c675e3c0b4a10b64d811a219feeae (diff) | |
download | ingen-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.cpp | 10 |
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)); } } |