diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2023-01-11 15:56:13 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2023-01-11 16:17:35 +0100 |
commit | d75ad7e585e1b9b8c346a736d524c2ab06a90b96 (patch) | |
tree | 291463d14489792df41bc4fe161117c5fac05e1e | |
parent | 3ed049c4937eb8ed8a0ddb3917157916834b165a (diff) | |
download | tracker-d75ad7e585e1b9b8c346a736d524c2ab06a90b96.tar.gz |
libtracker-sparql: Avoid detaching all nodes in JSON-LD serializer
If there are circular references, we might end up in a state that all
JSON nodes were made part of a subtree, leaving us with no "root"
node to unroll the data.
Make it sure that we are left at least with a single root node, that
every other nodes hang from.
-rw-r--r-- | src/libtracker-sparql/tracker-serializer-json-ld.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libtracker-sparql/tracker-serializer-json-ld.c b/src/libtracker-sparql/tracker-serializer-json-ld.c index 52949f549..27e6a735d 100644 --- a/src/libtracker-sparql/tracker-serializer-json-ld.c +++ b/src/libtracker-sparql/tracker-serializer-json-ld.c @@ -307,6 +307,7 @@ serialize_up_to_position (TrackerSerializerJsonLD *serializer_json_ld, res); if (node && + serializer_json_ld->recent_resources->next != NULL && serializer_json_ld->cur_resource != json_node_get_object (node) && g_list_find (serializer_json_ld->recent_resources, node)) { /* This is still a "root" node, make it part of this tree */ |