diff options
author | David Robillard <d@drobilla.net> | 2019-03-08 06:50:14 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-03-09 00:43:43 +0100 |
commit | 6bb3c48972d172fec244afae08a905e2246d9cda (patch) | |
tree | 8b4e2b0f22896a4b15cbfba9dfc0497a0586d4c8 /src/server/ingen_lv2.cpp | |
parent | e4edf13d6ed0a3bc8cb6103d48b082e850949e4c (diff) | |
download | ingen-6bb3c48972d172fec244afae08a905e2246d9cda.tar.gz ingen-6bb3c48972d172fec244afae08a905e2246d9cda.tar.bz2 ingen-6bb3c48972d172fec244afae08a905e2246d9cda.zip |
Use smart pointers over manual memory management
Diffstat (limited to 'src/server/ingen_lv2.cpp')
-rw-r--r-- | src/server/ingen_lv2.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/server/ingen_lv2.cpp b/src/server/ingen_lv2.cpp index 8e5b2189..2d1769a0 100644 --- a/src/server/ingen_lv2.cpp +++ b/src/server/ingen_lv2.cpp @@ -429,7 +429,7 @@ struct IngenPlugin { UPtr<ingen::World> world; SPtr<Engine> engine; - std::thread* main; + UPtr<std::thread> main; LV2_URID_Map* map; int argc; char** argv; @@ -613,7 +613,7 @@ ingen_activate(LV2_Handle instance) SPtr<server::Engine> engine = static_ptr_cast<server::Engine>(me->world->engine()); const SPtr<LV2Driver>& driver = static_ptr_cast<LV2Driver>(engine->driver()); engine->activate(); - me->main = new std::thread(ingen_lv2_main, engine, driver); + me->main = make_unique<std::thread>(ingen_lv2_main, engine, driver); } static void @@ -636,8 +636,7 @@ ingen_deactivate(LV2_Handle instance) me->world->engine()->deactivate(); if (me->main) { me->main->join(); - delete me->main; - me->main = nullptr; + me->main.reset(); } } @@ -649,7 +648,7 @@ ingen_cleanup(LV2_Handle instance) me->world->set_interface(SPtr<ingen::Interface>()); if (me->main) { me->main->join(); - delete me->main; + me->main.reset(); } auto world = std::move(me->world); |