summaryrefslogtreecommitdiffstats
path: root/sord
diff options
context:
space:
mode:
Diffstat (limited to 'sord')
-rw-r--r--sord/sord.h3
-rw-r--r--sord/sordmm.hpp10
2 files changed, 7 insertions, 6 deletions
diff --git a/sord/sord.h b/sord/sord.h
index 04ea676..2269d13 100644
--- a/sord/sord.h
+++ b/sord/sord.h
@@ -401,10 +401,11 @@ sord_search(SordModel* model,
Search for a single node that matches a pattern.
Exactly one of @p s, @p p, @p o must be NULL.
This function is mainly useful for predicates that only have one value.
+ The returned node must be freed using sord_node_free.
@return the first matching node, or NULL if no matches are found.
*/
SORD_API
-const SordNode*
+SordNode*
sord_get(SordModel* model,
const SordNode* s,
const SordNode* p,
diff --git a/sord/sordmm.hpp b/sord/sordmm.hpp
index 4e6585f..b98afc7 100644
--- a/sord/sordmm.hpp
+++ b/sord/sordmm.hpp
@@ -640,11 +640,11 @@ Model::get(const Node& subject,
const Node& predicate,
const Node& object)
{
- return Node(_world, sord_get(_c_obj,
- subject.c_obj(),
- predicate.c_obj(),
- object.c_obj(),
- NULL));
+ SordNode* c_node = sord_get(
+ _c_obj, subject.c_obj(), predicate.c_obj(), object.c_obj(), NULL);
+ Node node(_world, c_node);
+ sord_node_free(_world.c_obj(), c_node);
+ return node;
}
} // namespace Sord