aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-04-10 18:38:56 -0400
committerDavid Robillard <d@drobilla.net>2023-12-02 18:49:08 -0500
commitb839af39ad87fbf0fe30fd500b596a5593c13a69 (patch)
tree2cc2bd60bd1e28cd966f694a3329cdbd8c80b023 /src/reader.c
parentc8594c69b612005c7507ad00f7274ca7791197d7 (diff)
downloadserd-b839af39ad87fbf0fe30fd500b596a5593c13a69.tar.gz
serd-b839af39ad87fbf0fe30fd500b596a5593c13a69.tar.bz2
serd-b839af39ad87fbf0fe30fd500b596a5593c13a69.zip
Reuse the same rdf:type node for all "a" abbreviations
This reduces the stack space requirements for every type statement, at the cost of adding a bit of constant bloat for the node in documents that do not contain it.
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/reader.c b/src/reader.c
index 73509c6f..b7a64ce4 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -271,11 +271,13 @@ serd_reader_new(SerdWorld* const world,
me->rdf_first = push_node(me, SERD_URI, NS_RDF "first", 48);
me->rdf_rest = push_node(me, SERD_URI, NS_RDF "rest", 47);
me->rdf_nil = push_node(me, SERD_URI, NS_RDF "nil", 46);
+ me->rdf_type = push_node(me, SERD_URI, NS_RDF "type", 47);
// The initial stack size check should cover this
assert(me->rdf_first);
assert(me->rdf_rest);
assert(me->rdf_nil);
+ assert(me->rdf_type);
if (!(flags & SERD_READ_GLOBAL)) {
me->bprefix[0] = 'f';