From 957fbbae9d51e3850f00ed109052ce7bab7087e0 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 3 Jun 2018 19:47:07 +0200 Subject: 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. --- src/reader.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/reader.c') 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; } -- cgit v1.2.1