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>2019-04-13 19:15:32 +0200
commitcb070da4ff22be3f6561bda76545a03737d1e16c (patch)
treeb56bcc253c830c01804e52d754664fffdc391172 /src/node.c
parent27dae08d225b0388f08a7cd8b4dcadbed1f671b9 (diff)
downloadserd-cb070da4ff22be3f6561bda76545a03737d1e16c.tar.gz
serd-cb070da4ff22be3f6561bda76545a03737d1e16c.tar.bz2
serd-cb070da4ff22be3f6561bda76545a03737d1e16c.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 e0c1e7b3..1240ee6e 100644
--- a/src/node.c
+++ b/src/node.c
@@ -30,6 +30,12 @@
# endif
#endif
+char*
+serd_node_buffer(SerdNode* node)
+{
+ return (char*)(node + 1);
+}
+
SerdNode
serd_node_from_string(SerdType type, const char* str)
{
@@ -112,8 +118,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;
}
@@ -379,13 +386,13 @@ serd_node_get_type(const SerdNode* node)
const char*
serd_node_get_string(const SerdNode* node)
{
- return node->buf;
+ return node ? node->buf : NULL;
}
size_t
serd_node_get_length(const SerdNode* node)
{
- return node->n_bytes;
+ return node ? node->n_bytes : 0;
}
SerdNodeFlags