diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2022-08-20 19:02:07 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-08-30 17:38:57 +0200 |
commit | c56e635095032e682676169497ea0fd8d1d41103 (patch) | |
tree | 897868565b69ce83e4ebc58b1730fb5efb4b29b1 | |
parent | adccf33b7c95fd76916b33326553dc6f29ab905c (diff) | |
download | tracker-c56e635095032e682676169497ea0fd8d1d41103.tar.gz |
core: Optimize call to fetch property values
This is only necessary for properties with rdfs:Resource range,
so only perform this operation for those.
-rw-r--r-- | src/libtracker-sparql/core/tracker-data-update.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/libtracker-sparql/core/tracker-data-update.c b/src/libtracker-sparql/core/tracker-data-update.c index 18da62913..dceba867d 100644 --- a/src/libtracker-sparql/core/tracker-data-update.c +++ b/src/libtracker-sparql/core/tracker-data-update.c @@ -2698,20 +2698,20 @@ delete_single_valued (TrackerData *data, GError *inner_error = NULL; GArray *old_values; - old_values = get_property_values (data, predicate, &inner_error); + log_entry_for_single_value_property (data, + tracker_property_get_domain (predicate), + predicate, NULL); - if (old_values && old_values->len == 1) { - GValue *value; + if (tracker_property_get_data_type (predicate) == TRACKER_PROPERTY_TYPE_RESOURCE) { + old_values = get_property_values (data, predicate, &inner_error); - value = &g_array_index (old_values, GValue, 0); - log_entry_for_single_value_property (data, - tracker_property_get_domain (predicate), - predicate, NULL); + if (old_values && old_values->len == 1) { + GValue *value; - if (tracker_property_get_data_type (predicate) == TRACKER_PROPERTY_TYPE_RESOURCE) + value = &g_array_index (old_values, GValue, 0); tracker_data_resource_unref (data, g_value_get_int64 (value), multiple_values); - - g_array_remove_index (old_values, 0); + g_array_remove_index (old_values, 0); + } } else { /* no need to error out if statement does not exist for any reason */ g_clear_error (&inner_error); |