From 48eff0da05d4203013835ed500bade593f842557 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 3 Jun 2011 18:14:32 +0000 Subject: Remove use of boost::enable_shared_from_this. Instead, just store a pointer to the containing canvas in Items, since it should not be possible for an Item to outlive its containing Canvas anyway. Shrinks Item memory overhead a tad and gives a minor performance boost as an added bonus. git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@3354 a436a847-0d15-0410-975c-d299462d15a1 --- src/AlsaDriver.cpp | 6 ++---- src/JackDriver.cpp | 5 +---- src/PatchageModule.cpp | 10 +++------- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/AlsaDriver.cpp b/src/AlsaDriver.cpp index f744b5f..56bef22 100644 --- a/src/AlsaDriver.cpp +++ b/src/AlsaDriver.cpp @@ -218,10 +218,8 @@ AlsaDriver::create_port(boost::shared_ptr parent, new PatchagePort(parent, ALSA_MIDI, name, is_input, _app->state_manager()->get_port_color(ALSA_MIDI))); - boost::shared_ptr canvas - = boost::dynamic_pointer_cast(parent->canvas().lock()); - if (canvas) - canvas->index_port(PortID(addr, is_input), ret); + dynamic_cast(parent->canvas())->index_port( + PortID(addr, is_input), ret); ret->alsa_addr(addr); return ret; diff --git a/src/JackDriver.cpp b/src/JackDriver.cpp index 420d3fa..5b2d180 100644 --- a/src/JackDriver.cpp +++ b/src/JackDriver.cpp @@ -214,10 +214,7 @@ JackDriver::create_port(boost::shared_ptr parent, jack_port_t* p _app->state_manager()->get_port_color(port_type))); if (id.type != PortID::NULL_PORT_ID) { - boost::shared_ptr canvas - = boost::dynamic_pointer_cast(parent->canvas().lock()); - if (canvas) - canvas->index_port(id, ret); + dynamic_cast(parent->canvas())->index_port(id, ret); } return ret; diff --git a/src/PatchageModule.cpp b/src/PatchageModule.cpp index f88dd7c..813a45d 100644 --- a/src/PatchageModule.cpp +++ b/src/PatchageModule.cpp @@ -22,7 +22,7 @@ PatchageModule::PatchageModule( Patchage* app, const std::string& name, ModuleType type, double x, double y) - : Module(app->canvas(), name, x, y) + : Module(*app->canvas().get(), name, x, y) , _app(app) , _type(type) { @@ -79,17 +79,13 @@ PatchageModule::create_menu() void PatchageModule::load_location() { - boost::shared_ptr canvas = _canvas.lock(); - if (!canvas) - return; - Coord loc; if (_app->state_manager()->get_module_location(_name, _type, loc)) move_to(loc.x, loc.y); else - move_to((canvas->width()/2) - 100 + rand() % 400, - (canvas->height()/2) - 100 + rand() % 400); + move_to((_canvas->width()/2) - 100 + rand() % 400, + (_canvas->height()/2) - 100 + rand() % 400); } void -- cgit v1.2.1