aboutsummaryrefslogtreecommitdiffstats
path: root/src/node.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-02-04 15:33:36 +0100
committerDavid Robillard <d@drobilla.net>2018-05-27 18:21:57 +0200
commitd37123707c7cde6368d6d368995628ad4809913c (patch)
tree06562aa8168d0e6392108959afadb9b99260f9ce /src/node.c
parente0a6647ce80ee4116b5de7a0cde9a652c8e26cf1 (diff)
downloadserd-d37123707c7cde6368d6d368995628ad4809913c.tar.gz
serd-d37123707c7cde6368d6d368995628ad4809913c.tar.bz2
serd-d37123707c7cde6368d6d368995628ad4809913c.zip
Use opaque node API
Diffstat (limited to 'src/node.c')
-rw-r--r--src/node.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/node.c b/src/node.c
index 3be90856..65a2172b 100644
--- a/src/node.c
+++ b/src/node.c
@@ -31,6 +31,12 @@
# endif
#endif
+char*
+serd_node_buffer(SerdNode* node)
+{
+ return (char*)(node + 1);
+}
+
SERD_API
SerdNode
serd_node_from_string(SerdType type, const char* str)
@@ -118,8 +124,9 @@ serd_node_new_uri_from_node(const SerdNode* uri_node,
const SerdURI* base,
SerdURI* out)
{
- return (uri_node->type == SERD_URI && uri_node->buf)
- ? serd_node_new_uri_from_string(uri_node->buf, base, out)
+ const char* uri_str = serd_node_get_string(uri_node);
+ return (uri_node->type == SERD_URI && uri_str)
+ ? serd_node_new_uri_from_string(uri_str, base, out)
: SERD_NODE_NULL;
}
@@ -394,14 +401,14 @@ SERD_API
const char*
serd_node_get_string(const SerdNode* node)
{
- return node->buf;
+ return node ? node->buf : NULL;
}
SERD_API
size_t
serd_node_get_length(const SerdNode* node)
{
- return node->n_bytes;
+ return node ? node->n_bytes : 0;
}
SERD_API