From 47c8ed163b98b307fa4f7412e59760ccff8e630f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 3 Oct 2007 22:21:16 +0000 Subject: Fix Plugin class related bugs. git-svn-id: http://svn.drobilla.net/lad/slv2@814 a436a847-0d15-0410-975c-d299462d15a1 --- src/plugin.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/plugin.c') diff --git a/src/plugin.c b/src/plugin.c index b6789c6..73a3ebf 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -163,27 +163,30 @@ slv2_plugin_load(SLV2Plugin p) NULL, query, p->plugin_uri); librdf_query_results* results = librdf_query_execute(q, p->rdf); - + while (!librdf_query_results_finished(results)) { librdf_node* class_node = librdf_query_results_get_binding_value(results, 0); librdf_uri* class_uri = librdf_node_get_uri(class_node); const char* class_uri_str = (const char*)librdf_uri_as_string(class_uri); - SLV2PluginClass plugin_class = slv2_plugin_classes_get_by_uri( - p->world->plugin_classes, class_uri_str); - - librdf_free_node(class_node); + if ( ! librdf_uri_equals(class_uri, p->world->lv2_plugin_class->uri) ) { + + SLV2PluginClass plugin_class = slv2_plugin_classes_get_by_uri( + p->world->plugin_classes, class_uri_str); + + librdf_free_node(class_node); - if (plugin_class) { - p->plugin_class = plugin_class; - break; + if (plugin_class) { + p->plugin_class = plugin_class; + break; + } } librdf_query_results_next(results); } if (p->plugin_class == NULL) - p->plugin_class = raptor_sequence_get_at(p->world->plugin_classes, 0); // lv2:Plugin + p->plugin_class = p->world->lv2_plugin_class; librdf_free_query_results(results); librdf_free_query(q); -- cgit v1.2.1