diff options
author | David Robillard <d@drobilla.net> | 2018-10-28 14:15:28 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-10-27 13:13:58 +0100 |
commit | 2c70b584b6b110a85f0a7b1491b40c0de37b7f93 (patch) | |
tree | e12e4b90e70eb42566f36ed16db2e630dc6e2303 /src/world.c | |
parent | bd945cd3a0f49718fa40469aee9efc6a90266612 (diff) | |
download | serd-2c70b584b6b110a85f0a7b1491b40c0de37b7f93.tar.gz serd-2c70b584b6b110a85f0a7b1491b40c0de37b7f93.tar.bz2 serd-2c70b584b6b110a85f0a7b1491b40c0de37b7f93.zip |
Cache commonly used nodes in the world
Diffstat (limited to 'src/world.c')
-rw-r--r-- | src/world.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/world.c b/src/world.c index 3d632f05..800a8bbc 100644 --- a/src/world.c +++ b/src/world.c @@ -21,6 +21,7 @@ #include "cursor.h" #include "node.h" #include "serd_config.h" +#include "serd_internal.h" #if defined(HAVE_POSIX_FADVISE) # include <fcntl.h> @@ -84,8 +85,18 @@ SerdWorld* serd_world_new(void) { SerdWorld* world = (SerdWorld*)calloc(1, sizeof(SerdWorld)); + SerdNodes* nodes = serd_nodes_new(); + + world->rdf_first = serd_nodes_manage(nodes, serd_new_uri(NS_RDF "first")); + world->rdf_nil = serd_nodes_manage(nodes, serd_new_uri(NS_RDF "nil")); + world->rdf_rest = serd_nodes_manage(nodes, serd_new_uri(NS_RDF "rest")); + world->rdf_type = serd_nodes_manage(nodes, serd_new_uri(NS_RDF "type")); + world->xsd_boolean = serd_nodes_manage(nodes, serd_new_uri(NS_XSD "boolean")); + world->xsd_decimal = serd_nodes_manage(nodes, serd_new_uri(NS_XSD "decimal")); + world->xsd_integer = serd_nodes_manage(nodes, serd_new_uri(NS_XSD "integer")); world->blank_node = serd_new_blank("b0000000000"); + world->nodes = nodes; return world; } @@ -95,6 +106,7 @@ serd_world_free(SerdWorld* world) { if (world) { serd_node_free(world->blank_node); + serd_nodes_free(world->nodes); free(world); } } |