aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-06-03 19:47:07 +0200
committerDavid Robillard <d@drobilla.net>2018-11-25 22:12:47 +0100
commit957fbbae9d51e3850f00ed109052ce7bab7087e0 (patch)
tree1c34e3bad481e08f40e800b1cc20aaaa809aad97 /src/reader.c
parentcd63c3d8d0627b5cb6c060db5f5132c0dbcc9a79 (diff)
downloadserd-957fbbae9d51e3850f00ed109052ce7bab7087e0.tar.gz
serd-957fbbae9d51e3850f00ed109052ce7bab7087e0.tar.bz2
serd-957fbbae9d51e3850f00ed109052ce7bab7087e0.zip
Make statement sink take a statement rather than nodes
This makes the interface more extensible, towards associating more information with statements. The serd_sink_write_nodes wrapper remains so that user code does not need to allocate in order to write statement.
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/reader.c b/src/reader.c
index 261b8d65..0c32fbc7 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -17,6 +17,7 @@
#include "reader.h"
#include "serd_internal.h"
+#include "statement.h"
#include "system.h"
#include "world.h"
@@ -122,9 +123,12 @@ emit_statement(SerdReader* reader, ReadContext ctx, SerdNode* o)
(subject and predicate) were already zeroed by subsequent pushes. */
serd_node_zero_pad(o);
+ const SerdStatement statement = {
+ { ctx.subject, ctx.predicate, o, graph }
+ };
+
const SerdStatus st = reader->sink->statement(
- reader->sink->handle, *ctx.flags, graph,
- ctx.subject, ctx.predicate, o);
+ reader->sink->handle, *ctx.flags, &statement);
*ctx.flags &= SERD_ANON_CONT|SERD_LIST_CONT; // Preserve only cont flags
return st;
}