diff options
Diffstat (limited to 'src/node_syntax.c')
-rw-r--r-- | src/node_syntax.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/node_syntax.c b/src/node_syntax.c index b1d10a5d..0c45e33a 100644 --- a/src/node_syntax.c +++ b/src/node_syntax.c @@ -99,8 +99,12 @@ serd_node_to_syntax_in(const SerdNode* const node, SerdWriter* const writer = serd_writer_new(world, syntax, 0, env, out); char* result = NULL; - if (!serd_writer_write_node(writer, node) && !serd_writer_finish(writer)) { - result = serd_buffer_sink_finish(&buffer); + if (!serd_writer_write_node(writer, node) && !serd_writer_finish(writer) && + !serd_byte_sink_close(out)) { + result = (char*)buffer.buf; + } else { + serd_byte_sink_close(out); + free(buffer.buf); } serd_writer_free(writer); |