summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2019-10-03 00:07:47 +0200
committerSam Thursfield <sam@afuera.me.uk>2019-10-03 00:50:29 +0200
commitcc9b5775fb2c0dc65645e0ce004b06e3d66207cb (patch)
tree913996e90a85ab896ada8cc3a08667441e9b4935
parent59376a1610ddaf918d4f171713bf0107df242ca4 (diff)
downloadtracker-cc9b5775fb2c0dc65645e0ce004b06e3d66207cb.tar.gz
libtracker-sparql: Rearrange some tracker-resource.c code
This rearranges tracker-resource.c generate_sparql_insert_pattern() to check the done list, same as what we now do in generate_sparql_deletes(). Functionality should not change.
-rw-r--r--src/libtracker-sparql/tracker-resource.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c
index 4baf70667..87b9c692d 100644
--- a/src/libtracker-sparql/tracker-resource.c
+++ b/src/libtracker-sparql/tracker-resource.c
@@ -1352,10 +1352,7 @@ generate_sparql_relation_inserts_foreach (gpointer key,
data->namespaces))
return;
- if (g_list_find_resource (data->done_list, relation) == NULL) {
- data->done_list = g_list_prepend (data->done_list, relation);
- generate_sparql_insert_pattern (relation, data);
- }
+ generate_sparql_insert_pattern (relation, data);
} else if (G_VALUE_HOLDS (value, G_TYPE_PTR_ARRAY)) {
GPtrArray *array = g_value_get_boxed (value);
const GValue *array_value;
@@ -1375,10 +1372,6 @@ generate_sparql_relation_inserts_foreach (gpointer key,
data->namespaces))
continue;
- if (g_list_find_resource (data->done_list, relation) != NULL)
- continue;
-
- data->done_list = g_list_prepend (data->done_list, relation);
generate_sparql_insert_pattern (relation, data);
}
}
@@ -1460,6 +1453,12 @@ generate_sparql_insert_pattern (TrackerResource *resource,
const GValue *value;
gboolean had_property = FALSE;
+ if (g_list_find_resource (data->done_list, resource) != NULL)
+ /* We already processed this resource. */
+ return;
+
+ data->done_list = g_list_prepend (data->done_list, resource);
+
/* First, emit any sub-resources. */
g_hash_table_foreach (priv->properties, generate_sparql_relation_inserts_foreach, data);
@@ -1551,7 +1550,7 @@ tracker_resource_print_sparql_update (TrackerResource *resource,
generate_sparql_deletes (resource, &context);
g_list_free (context.done_list);
- context.done_list = g_list_prepend (NULL, resource);
+ context.done_list = NULL;
/* Finally insert the data */
g_string_append (context.string, "INSERT DATA {\n");