summaryrefslogtreecommitdiff
path: root/src/libtracker-sparql
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2019-04-01 12:57:38 +0200
committerSam Thursfield <sam@afuera.me.uk>2019-04-01 12:57:38 +0200
commit8cec529629a1c805dd9c5ca6ab57e0de96c7b530 (patch)
treed16bcbcee8dbc91b2faebc8dc3c34f3d24a5fe78 /src/libtracker-sparql
parentc1a57a038d18f69e5130f6c3b978384c010f5b7c (diff)
downloadtracker-8cec529629a1c805dd9c5ca6ab57e0de96c7b530.tar.gz
libtracker-sparql: Don't try to create JSON nodes with unsigned integers
It turns out that json-glib only allows signed integer fields. This fixes missing values when running `tracker-extract -o json-ld` in certain cases. If you hit this bug you might also see the following error: Invalid value of type 'guint'
Diffstat (limited to 'src/libtracker-sparql')
-rw-r--r--src/libtracker-sparql/tracker-resource.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c
index a5d006270..989fafb65 100644
--- a/src/libtracker-sparql/tracker-resource.c
+++ b/src/libtracker-sparql/tracker-resource.c
@@ -1595,6 +1595,10 @@ generate_jsonld_value (const GValue *value,
node = json_node_new (JSON_NODE_VALUE);
json_node_set_string (node, uri);
json_builder_add_value (data->builder, node);
+ } else if (G_VALUE_HOLDS (value, G_TYPE_UINT)) {
+ node = json_node_new (JSON_NODE_VALUE);
+ json_node_set_int (node, g_value_get_uint(value));
+ json_builder_add_value (data->builder, node);
} else {
node = json_node_new (JSON_NODE_VALUE);
json_node_set_value (node, value);