diff options
author | David Robillard <d@drobilla.net> | 2012-01-29 22:06:46 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-01-29 22:06:46 +0000 |
commit | 6719d2f4cf72fe833edcd0e0dd22fcf7f0e1091b (patch) | |
tree | 56eb0f51c1dff7ea1d53d1490e92abb2410a747f | |
parent | ce2c5cc2036154c2b3ce8850c35e34c0bffeef1f (diff) | |
download | lilv-6719d2f4cf72fe833edcd0e0dd22fcf7f0e1091b.tar.gz lilv-6719d2f4cf72fe833edcd0e0dd22fcf7f0e1091b.tar.bz2 lilv-6719d2f4cf72fe833edcd0e0dd22fcf7f0e1091b.zip |
Fix duplicate plugin errors with multiple dynmanifests per bundle (fix #811).
Use dynmanifest as context rather than bundle. Not sure if this will have other consequences...
git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@3968 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | src/world.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/world.c b/src/world.c index 8190c34..28a58c5 100644 --- a/src/world.c +++ b/src/world.c @@ -456,9 +456,10 @@ lilv_world_load_dyn_manifest(LilvWorld* world, rewind(fd); // Parse generated data file - SerdEnv* env = serd_env_new(sord_node_to_serd_node(bundle_node)); - SerdReader* reader = sord_new_reader( - world->model, env, SERD_TURTLE, bundle_node); + const SerdNode* base = sord_node_to_serd_node(dmanifest); + SerdEnv* env = serd_env_new(base); + SerdReader* reader = sord_new_reader( + world->model, env, SERD_TURTLE, sord_node_copy(dmanifest)); serd_reader_read_file_handle(reader, fd, (const uint8_t*)"(dyn-manifest)"); serd_reader_free(reader); @@ -473,7 +474,7 @@ lilv_world_load_dyn_manifest(LilvWorld* world, NULL, world->uris.rdf_a, world->uris.lv2_Plugin, - bundle_node); + dmanifest); FOREACH_MATCH(plug_results) { const SordNode* plugin_node = lilv_match_subject(plug_results); lilv_world_add_plugin(world, plugin_node, |