summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-01-29 22:06:46 +0000
committerDavid Robillard <d@drobilla.net>2012-01-29 22:06:46 +0000
commit6719d2f4cf72fe833edcd0e0dd22fcf7f0e1091b (patch)
tree56eb0f51c1dff7ea1d53d1490e92abb2410a747f
parentce2c5cc2036154c2b3ce8850c35e34c0bffeef1f (diff)
downloadlilv-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.c9
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,