[tracker/wip/carlosg/deserializer-cursors: 10/15] libtracker-sparql: Set connection consistently on all TrackerSparqlCursor
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/deserializer-cursors: 10/15] libtracker-sparql: Set connection consistently on all TrackerSparqlCursor
- Date: Sun, 1 May 2022 17:44:54 +0000 (UTC)
commit feab59e70936d201c77341cc5b364c85822ba4ef
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun May 1 15:37:03 2022 +0200
libtracker-sparql: Set connection consistently on all TrackerSparqlCursor
Do this from the generic code, in order to ensure all TrackerSparqlCursor
that leave from public API functions have a connection assigned.
src/libtracker-sparql/direct/tracker-direct.c | 3 ---
src/libtracker-sparql/tracker-connection.c | 26 ++++++++++++++++++-------
src/libtracker-sparql/tracker-statement.c | 28 +++++++++++++++++++++------
3 files changed, 41 insertions(+), 16 deletions(-)
---
diff --git a/src/libtracker-sparql/direct/tracker-direct.c b/src/libtracker-sparql/direct/tracker-direct.c
index 20ae389ab..66c10410f 100644
--- a/src/libtracker-sparql/direct/tracker-direct.c
+++ b/src/libtracker-sparql/direct/tracker-direct.c
@@ -813,9 +813,6 @@ tracker_direct_connection_query (TrackerSparqlConnection *self,
cursor = tracker_sparql_execute_cursor (query, NULL, &inner_error);
tracker_direct_connection_update_timestamp (conn);
g_object_unref (query);
-
- if (cursor)
- tracker_sparql_cursor_set_connection (cursor, self);
g_mutex_unlock (&priv->mutex);
if (inner_error)
diff --git a/src/libtracker-sparql/tracker-connection.c b/src/libtracker-sparql/tracker-connection.c
index f964f44ae..cb817b765 100644
--- a/src/libtracker-sparql/tracker-connection.c
+++ b/src/libtracker-sparql/tracker-connection.c
@@ -251,15 +251,21 @@ tracker_sparql_connection_query (TrackerSparqlConnection *connection,
GCancellable *cancellable,
GError **error)
{
+ TrackerSparqlCursor *cursor;
+
g_return_val_if_fail (TRACKER_IS_SPARQL_CONNECTION (connection), NULL);
g_return_val_if_fail (sparql != NULL, NULL);
g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), NULL);
g_return_val_if_fail (!error || !*error, NULL);
- return TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->query (connection,
- sparql,
- cancellable,
- error);
+ cursor = TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->query (connection,
+ sparql,
+ cancellable,
+ error);
+ if (cursor)
+ tracker_sparql_cursor_set_connection (cursor, connection);
+
+ return cursor;
}
/**
@@ -308,13 +314,19 @@ tracker_sparql_connection_query_finish (TrackerSparqlConnection *connection,
GAsyncResult *res,
GError **error)
{
+ TrackerSparqlCursor *cursor;
+
g_return_val_if_fail (TRACKER_IS_SPARQL_CONNECTION (connection), NULL);
g_return_val_if_fail (G_IS_ASYNC_RESULT (res), NULL);
g_return_val_if_fail (!error || !*error, NULL);
- return TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->query_finish (connection,
- res,
- error);
+ cursor = TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->query_finish (connection,
+ res,
+ error);
+ if (cursor)
+ tracker_sparql_cursor_set_connection (cursor, connection);
+
+ return cursor;
}
/**
diff --git a/src/libtracker-sparql/tracker-statement.c b/src/libtracker-sparql/tracker-statement.c
index 72c8604f6..04d1bc4c7 100644
--- a/src/libtracker-sparql/tracker-statement.c
+++ b/src/libtracker-sparql/tracker-statement.c
@@ -324,13 +324,21 @@ tracker_sparql_statement_execute (TrackerSparqlStatement *stmt,
GCancellable *cancellable,
GError **error)
{
+ TrackerSparqlStatementPrivate *priv =
+ tracker_sparql_statement_get_instance_private (stmt);
+ TrackerSparqlCursor *cursor;
+
g_return_val_if_fail (TRACKER_IS_SPARQL_STATEMENT (stmt), NULL);
g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), NULL);
g_return_val_if_fail (!error || !*error, NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->execute (stmt,
- cancellable,
- error);
+ cursor = TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->execute (stmt,
+ cancellable,
+ error);
+ if (cursor)
+ tracker_sparql_cursor_set_connection (cursor, priv->connection);
+
+ return cursor;
}
/**
@@ -374,13 +382,21 @@ tracker_sparql_statement_execute_finish (TrackerSparqlStatement *stmt,
GAsyncResult *res,
GError **error)
{
+ TrackerSparqlStatementPrivate *priv =
+ tracker_sparql_statement_get_instance_private (stmt);
+ TrackerSparqlCursor *cursor;
+
g_return_val_if_fail (TRACKER_IS_SPARQL_STATEMENT (stmt), NULL);
g_return_val_if_fail (G_IS_ASYNC_RESULT (res), NULL);
g_return_val_if_fail (!error || !*error, NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->execute_finish (stmt,
- res,
- error);
+ cursor = TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->execute_finish (stmt,
+ res,
+ error);
+ if (cursor)
+ tracker_sparql_cursor_set_connection (cursor, priv->connection);
+
+ return cursor;
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]