summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2022-08-20 19:02:07 +0200
committerCarlos Garnacho <carlosg@gnome.org>2022-08-30 17:38:57 +0200
commitc56e635095032e682676169497ea0fd8d1d41103 (patch)
tree897868565b69ce83e4ebc58b1730fb5efb4b29b1
parentadccf33b7c95fd76916b33326553dc6f29ab905c (diff)
downloadtracker-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.c20
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);