From a81b9cdaa2c8d6cf4fcef2472ac0dfa2ca7e47e9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 31 Jan 2011 00:07:58 +0000 Subject: Remove repetitive librdf node copy into slv2_plugin_get_unique. git-svn-id: http://svn.drobilla.net/lad/trunk/slv2@2879 a436a847-0d15-0410-975c-d299462d15a1 --- src/plugin.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'src/plugin.c') diff --git a/src/plugin.c b/src/plugin.c index 4e2a630..d942106 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -137,7 +137,10 @@ slv2_plugin_query_node(SLV2Plugin p, librdf_node* subject, librdf_node* predicat SLV2Value slv2_plugin_get_unique(SLV2Plugin p, librdf_node* subject, librdf_node* predicate) { - SLV2Values values = slv2_plugin_query_node(p, subject, predicate); + SLV2Values values = slv2_plugin_query_node( + p, + librdf_new_node_from_node(subject), + librdf_new_node_from_node(predicate)); if (!values || slv2_values_size(values) != 1) { SLV2_ERRORF("Port does not have exactly one `%s' property\n", librdf_uri_as_string(librdf_node_get_uri(predicate))); @@ -182,9 +185,7 @@ slv2_plugin_load_ports_if_necessary(SLV2Plugin p) FOREACH_MATCH(ports) { librdf_node* port = MATCH_OBJECT(ports); SLV2Value symbol = slv2_plugin_get_unique( - p, - librdf_new_node_from_node(port), - librdf_new_node_from_node(p->world->lv2_symbol_node)); + p, port, p->world->lv2_symbol_node); if (!slv2_value_is_string(symbol)) { SLV2_ERROR("port has a non-string symbol\n"); @@ -193,9 +194,7 @@ slv2_plugin_load_ports_if_necessary(SLV2Plugin p) } SLV2Value index = slv2_plugin_get_unique( - p, - librdf_new_node_from_node(port), - librdf_new_node_from_node(p->world->lv2_index_node)); + p, port, p->world->lv2_index_node); if (!slv2_value_is_int(index)) { SLV2_ERROR("port has a non-integer index\n"); @@ -663,9 +662,8 @@ slv2_plugin_get_latency_port_index(SLV2Plugin p) if (!slv2_matches_end(reports_latency)) { SLV2Value index = slv2_plugin_get_unique( - p, - librdf_new_node_from_node(port), - librdf_new_node_from_node(p->world->lv2_index_node)); + p, port, p->world->lv2_index_node); + ret = slv2_value_as_int(index); slv2_value_free(index); break; @@ -829,14 +827,15 @@ slv2_plugin_get_uis(SLV2Plugin p) librdf_node* ui = MATCH_OBJECT(uis); SLV2Value type = slv2_plugin_get_unique( - p, - librdf_new_node_from_node(ui), - librdf_new_node_from_node(p->world->rdf_a_node)); + p, ui, p->world->rdf_a_node); + + librdf_node* ui_binary_node = librdf_new_node_from_uri_string( + p->world->world, NS_UI "binary"); SLV2Value binary = slv2_plugin_get_unique( - p, - librdf_new_node_from_node(ui), - librdf_new_node_from_uri_string(p->world->world, NS_UI "binary")); + p, ui, ui_binary_node); + + librdf_free_node(ui_binary_node); if (!librdf_node_is_resource(ui) || !slv2_value_is_uri(type) -- cgit v1.2.1