diff options
author | Philip Van Hoof <philip@codeminded.be> | 2011-03-10 17:55:49 +0100 |
---|---|---|
committer | Philip Van Hoof <philip@codeminded.be> | 2011-03-29 10:21:54 +0200 |
commit | 78172279b0581092c521bb39ebe17b2c39dccdd6 (patch) | |
tree | 15f349417e7b71c5097bdd2bbd44737ae545a99d | |
parent | 0629c0be92f9ead88ca0ba681b30278dde06a22a (diff) | |
download | tracker-78172279b0581092c521bb39ebe17b2c39dccdd6.tar.gz |
libtracker-data: get_old_property_values already does domain check here
-rw-r--r-- | src/libtracker-data/tracker-data-update.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c index f1a2f218d..a6e33f878 100644 --- a/src/libtracker-data/tracker-data-update.c +++ b/src/libtracker-data/tracker-data-update.c @@ -2659,18 +2659,11 @@ tracker_data_update_statement_with_uri (const gchar *graph, gboolean multiple_values; GError *new_error = NULL; - if (!check_property_domain (property)) { - g_set_error (error, TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_CONSTRAINT, - "Subject `%s' is not in domain `%s' of property `%s'", - resource_buffer->subject, - tracker_class_get_name (tracker_property_get_domain (property)), - tracker_property_get_name (property)); - } - multiple_values = tracker_property_get_multiple_values (property); /* We can disable correct object-id for deletes array here */ if (!multiple_values) { + /* This does a check_property_domain too */ old_values = get_old_property_values (property, &new_error); if (!new_error) { if (old_values->n_values > 0) { @@ -2678,8 +2671,16 @@ tracker_data_update_statement_with_uri (const gchar *graph, old_object_id = (guint) g_value_get_int64 (g_value_array_get_nth (old_values, 0)); } } else { - g_warning ("%s", new_error->message); - g_clear_error (&new_error); + g_propagate_error (error, new_error); + return; + } + } else { + if (!check_property_domain (property)) { + g_set_error (error, TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_CONSTRAINT, + "Subject `%s' is not in domain `%s' of property `%s'", + resource_buffer->subject, + tracker_class_get_name (tracker_property_get_domain (property)), + tracker_property_get_name (property)); } } |