aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-02-24 09:35:10 +0100
committerDavid Robillard <d@drobilla.net>2021-03-08 23:23:05 -0500
commit52dc5234ce4da1427883dfdda70b9f07bc775994 (patch)
tree8fa38822a1377ba338cf8660846189ec70ce077d /src/reader.c
parent0be7ffef641d8ac4db8ab25857f960a9d4cfb719 (diff)
downloadserd-52dc5234ce4da1427883dfdda70b9f07bc775994.tar.gz
serd-52dc5234ce4da1427883dfdda70b9f07bc775994.tar.bz2
serd-52dc5234ce4da1427883dfdda70b9f07bc775994.zip
Make reader tolerant of being started several times
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/reader.c b/src/reader.c
index 5daec8f8..44b17704 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -238,6 +238,7 @@ serd_reader_start_stream(SerdReader* reader,
const SerdNode* name,
size_t page_size)
{
+ serd_reader_finish(reader);
return serd_byte_source_open_source(
&reader->source, read_func, error_func, NULL, stream, name, page_size);
}
@@ -245,6 +246,8 @@ serd_reader_start_stream(SerdReader* reader,
SerdStatus
serd_reader_start_file(SerdReader* reader, const char* uri, bool bulk)
{
+ serd_reader_finish(reader);
+
char* const path = serd_parse_file_uri(uri, NULL);
if (!path) {
return SERD_ERR_BAD_ARG;
@@ -274,6 +277,7 @@ serd_reader_start_string(SerdReader* reader,
const char* utf8,
const SerdNode* name)
{
+ serd_reader_finish(reader);
return serd_byte_source_open_string(&reader->source, utf8, name);
}