aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/reader.c b/src/reader.c
index 065a6040..1bca81ac 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -18,6 +18,7 @@
#include "system.h"
#include "serd_internal.h"
+#include "statement.h"
#include "world.h"
#include <errno.h>
@@ -119,15 +120,15 @@ emit_statement(SerdReader* reader, ReadContext ctx, SerdNode* o)
(subject and predicate) were already zeroed by subsequent pushes. */
serd_node_zero_pad(o);
- const SerdStatus st =
- !reader->sink->statement
- ? SERD_SUCCESS
- : reader->sink->statement(reader->sink->handle,
- *ctx.flags,
- graph,
- ctx.subject,
- ctx.predicate,
- o);
+ const SerdStatement statement = {
+ { ctx.subject, ctx.predicate, o, graph }
+ };
+
+ const SerdStatus st = !reader->sink->statement
+ ? SERD_SUCCESS
+ : reader->sink->statement(reader->sink->handle,
+ *ctx.flags,
+ &statement);
*ctx.flags &= SERD_ANON_CONT|SERD_LIST_CONT; // Preserve only cont flags
return st;