From c6d42dbbf9f6872d4fed67aecde8f7a65effab08 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 17 Jun 2006 23:47:42 +0000 Subject: New patch ports interface git-svn-id: http://svn.drobilla.net/lad/grauph@48 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/client/Store.cpp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'src/libs/client') diff --git a/src/libs/client/Store.cpp b/src/libs/client/Store.cpp index 34b86e2e..542c1bc5 100644 --- a/src/libs/client/Store.cpp +++ b/src/libs/client/Store.cpp @@ -209,13 +209,16 @@ Store::new_patch_event(const string& path, uint32_t poly) CountedPtr p(new PatchModel(path, poly)); add_object(p); - CountedPtr parent = object(p->path().parent()); - if (parent) { - p->set_parent(parent); - parent->add_node(p); - assert(p->parent() == parent); - } else { - cerr << "ERROR: new patch with no parent" << endl; + if (path != "/") { + CountedPtr parent = object(p->path().parent()); + if (parent) { + assert(path.substr(0, parent->path().length()) == parent->path()); + p->set_parent(parent); + parent->add_node(p); + assert(p->parent() == parent); + } else { + cerr << "ERROR: new patch with no parent" << endl; + } } } } @@ -283,16 +286,14 @@ Store::new_port_event(const string& path, const string& type, bool is_output) CountedPtr p(new PortModel(path, ptype, pdir)); add_object(p); - std::map >::iterator pi = m_objects.find(p->path().parent()); - if (pi != m_objects.end()) { - CountedPtr parent = (*pi).second; + CountedPtr parent = object(p->path().parent()); + if (parent) { p->set_parent(parent); - if (parent) { - parent->add_port(p); - assert(p->parent() == parent); - } else { - cerr << "ERROR: new port with no parent" << endl; - } + assert(p->parent() == parent); + parent->add_port(p); + assert(p->parent() == parent); + } else { + cerr << "ERROR: new port with no parent" << endl; } } } -- cgit v1.2.1