diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2019-10-03 00:07:47 +0200 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2019-10-03 00:50:29 +0200 |
commit | cc9b5775fb2c0dc65645e0ce004b06e3d66207cb (patch) | |
tree | 913996e90a85ab896ada8cc3a08667441e9b4935 | |
parent | 59376a1610ddaf918d4f171713bf0107df242ca4 (diff) | |
download | tracker-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.c | 17 |
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"); |