summaryrefslogtreecommitdiffstats
path: root/src/plugin.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-01-12 01:20:18 +0000
committerDavid Robillard <d@drobilla.net>2014-01-12 01:20:18 +0000
commitb6d42f8679198904b8210251d9529e6e52ff27a1 (patch)
tree9426f96ebfc16889d19a80d317e6c5a930e02e1f /src/plugin.c
parent7b6f3566ea79e1f876c873103e26485eb9d51b0a (diff)
downloadlilv-b6d42f8679198904b8210251d9529e6e52ff27a1.tar.gz
lilv-b6d42f8679198904b8210251d9529e6e52ff27a1.tar.bz2
lilv-b6d42f8679198904b8210251d9529e6e52ff27a1.zip
Don't load files multiple times if they are listed as rdfs:seeAlso for several plugins.
git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@5308 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/plugin.c b/src/plugin.c
index b0a726e..cc1bdba 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -166,14 +166,10 @@ lilv_plugin_load(LilvPlugin* p)
// Parse all the plugin's data files into RDF model
LILV_FOREACH(nodes, i, p->data_uris) {
- const LilvNode* data_uri_val = lilv_nodes_get(p->data_uris, i);
- const SordNode* data_uri_node = data_uri_val->node;
- const char* data_uri_str = lilv_node_as_uri(data_uri_val);
-
- serd_env_set_base_uri(env, sord_node_to_serd_node(data_uri_node));
- serd_reader_add_blank_prefix(reader,
- lilv_world_blank_node_prefix(p->world));
- serd_reader_read_file(reader, (const uint8_t*)data_uri_str);
+ const LilvNode* data_uri = lilv_nodes_get(p->data_uris, i);
+
+ serd_env_set_base_uri(env, sord_node_to_serd_node(data_uri->node));
+ lilv_world_load_file(p->world, reader, data_uri);
}
#ifdef LILV_DYN_MANIFEST