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-12-19 08:43:27 -0500
commit745d214ba0a1c0cdbfece6bd52a96f08a1c74b52 (patch)
treecd34daa3cb1272b4b81f2a6ca244b0a2234c3855 /src/node.c
parent12f165575f75916d4ec6fe6f200810b27c5c084f (diff)
downloadserd-745d214ba0a1c0cdbfece6bd52a96f08a1c74b52.tar.gz
serd-745d214ba0a1c0cdbfece6bd52a96f08a1c74b52.tar.bz2
serd-745d214ba0a1c0cdbfece6bd52a96f08a1c74b52.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 58f537f4..dfc31e5e 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