summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libtracker-data/tracker-db-manager.c2
-rw-r--r--src/libtracker-data/tracker-sparql.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 4eec98e11..75a562133 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -862,6 +862,8 @@ tracker_db_manager_get_db_interface (TrackerDBManager *db_manager)
}
}
+ tracker_db_interface_ref_use (interface);
+
g_async_queue_push_unlocked (db_manager->interfaces, interface);
g_async_queue_unlock (db_manager->interfaces);
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 6dea87b7a..e6680ea06 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -9465,7 +9465,7 @@ tracker_sparql_execute_cursor (TrackerSparql *sparql,
GError **error)
{
TrackerDBStatement *stmt;
- TrackerDBInterface *iface;
+ TrackerDBInterface *iface = NULL;
TrackerDBCursor *cursor = NULL;
TrackerPropertyType *types;
const gchar * const *names;
@@ -9524,6 +9524,8 @@ tracker_sparql_execute_cursor (TrackerSparql *sparql,
g_object_unref (stmt);
error:
+ if (iface)
+ tracker_db_interface_unref_use (iface);
g_mutex_unlock (&sparql->mutex);
return TRACKER_SPARQL_CURSOR (cursor);