diff options
Diffstat (limited to 'src/Serialiser.cpp')
-rw-r--r-- | src/Serialiser.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/Serialiser.cpp b/src/Serialiser.cpp index 70a1d286..c6d1bb59 100644 --- a/src/Serialiser.cpp +++ b/src/Serialiser.cpp @@ -356,10 +356,12 @@ Serialiser::Impl::serialise_graph(SPtr<const Node> graph, std::set<const Resource*> plugins; - const Store::const_range kids = _world.store()->children_range(graph); - for (Store::const_iterator n = kids.first; n != kids.second; ++n) { - if (n->first.parent() != graph->path()) + for (Store::const_iterator n = _world.store()->find_first_child(graph); + n != _world.store()->end() && n->first.is_child_of(graph->uri()); + ++n) { + if (uri_to_path(n->first).parent() != graph->path()) { continue; + } if (n->second->has_property(uris.rdf_type, uris.ingen_Graph)) { const SPtr<const Node> subgraph = n->second; @@ -465,10 +467,12 @@ Serialiser::Impl::serialise_block(SPtr<const Node> block, } } - const Store::const_range kids = _world.store()->children_range(block); - for (Store::const_iterator n = kids.first; n != kids.second; ++n) { - if (n->first.parent() != block->path()) + for (Store::const_iterator n = _world.store()->find_first_child(block); + n != _world.store()->end() && n->first.is_child_of(block->uri()); + ++n) { + if (uri_to_path(n->first).parent() != block->path()) { continue; + } if (n->second->has_property(uris.rdf_type, uris.lv2_InputPort) || n->second->has_property(uris.rdf_type, uris.lv2_InputPort)) { |