diff options
author | David Robillard <d@drobilla.net> | 2007-01-06 04:16:26 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-01-06 04:16:26 +0000 |
commit | 2122a857662203936a04a39df7d0e1ad1db82853 (patch) | |
tree | b31070a9d01ab20da1a03bf8d029dc3ce6ab66bc /src/libs/engine/NodeBase.cpp | |
parent | 9c5f7e9dc2029f97d0baf622165701e7c124b25e (diff) | |
download | ingen-2122a857662203936a04a39df7d0e1ad1db82853.tar.gz ingen-2122a857662203936a04a39df7d0e1ad1db82853.tar.bz2 ingen-2122a857662203936a04a39df7d0e1ad1db82853.zip |
Work on Port destruction (still broken).
git-svn-id: http://svn.drobilla.net/lad/ingen@233 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/NodeBase.cpp')
-rw-r--r-- | src/libs/engine/NodeBase.cpp | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/src/libs/engine/NodeBase.cpp b/src/libs/engine/NodeBase.cpp index 1462e3bf..7cc005ab 100644 --- a/src/libs/engine/NodeBase.cpp +++ b/src/libs/engine/NodeBase.cpp @@ -34,7 +34,6 @@ namespace Ingen { NodeBase::NodeBase(const Plugin* plugin, const string& name, size_t poly, Patch* parent, SampleRate srate, size_t buffer_size) : Node(parent, name), - _store(NULL), _plugin(plugin), _poly(poly), _srate(srate), @@ -79,21 +78,12 @@ NodeBase::deactivate() } -/* -void -NodeBase::send_creation_messages(ClientInterface* client) const -{ - cerr << "FIXME: send_creation\n"; - //_engine.broadcaster()->send_node_to(client, this); -} -*/ - void NodeBase::add_to_store(ObjectStore* store) { assert(!_store); - store->add(this); + GraphObject::add_to_store(store); for (size_t i=0; i < num_ports(); ++i) store->add(_ports->at(i)); @@ -105,23 +95,19 @@ NodeBase::add_to_store(ObjectStore* store) void NodeBase::remove_from_store() { - // Remove self - TreeNode<GraphObject*>* node = _store->remove(path()); - if (node != NULL) { - assert(_store->find(path()) == NULL); - delete node; - } - // Remove ports for (size_t i=0; i < num_ports(); ++i) { - node = _store->remove(_ports->at(i)->path()); + TreeNode<GraphObject*>* node = _store->remove(_ports->at(i)->path()); if (node != NULL) { assert(_store->find(_ports->at(i)->path()) == NULL); delete node; } } + + // Remove self + GraphObject::remove_from_store(); - _store = NULL; + assert(_store == NULL); } |