[tracker] libtracker-data: Make TrackerDBStatement a GInitiallyUnowned
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-data: Make TrackerDBStatement a GInitiallyUnowned
- Date: Sun, 20 Nov 2016 16:07:16 +0000 (UTC)
commit 54b31813c7fb6399a4309aa350bec0c9ecad071f
Author: Carlos Garnacho <carlosg gnome org>
Date: Sat Oct 22 17:09:38 2016 +0200
libtracker-data: Make TrackerDBStatement a GInitiallyUnowned
We actually deal with it as if it were (cached stmts have one ref
owned by the cache, and one by the caller. non-cached has just one
reference).
So make TrackerDBStatement actually an unowned type, and
g_object_ref_sink() in both places, if the stmt is cached the
ref will be sunk by the cache, and an extra ref added for the
caller, and if non-cached the only sunk reference will be the
callers'.
src/libtracker-data/tracker-db-interface-sqlite.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index 2958cba..1f21851 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -120,7 +120,7 @@ struct TrackerDBCursorClass {
};
struct TrackerDBStatement {
- GObject parent_instance;
+ GInitiallyUnowned parent_instance;
TrackerDBInterface *db_interface;
sqlite3_stmt *stmt;
gboolean stmt_is_sunk;
@@ -163,7 +163,7 @@ G_DEFINE_TYPE_WITH_CODE (TrackerDBInterface, tracker_db_interface, G_TYPE_OBJECT
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
tracker_db_interface_initable_iface_init));
-G_DEFINE_TYPE (TrackerDBStatement, tracker_db_statement, G_TYPE_OBJECT)
+G_DEFINE_TYPE (TrackerDBStatement, tracker_db_statement, G_TYPE_INITIALLY_UNOWNED)
G_DEFINE_TYPE (TrackerDBCursor, tracker_db_cursor, TRACKER_SPARQL_TYPE_CURSOR)
@@ -2051,7 +2051,7 @@ tracker_db_interface_lru_insert_unchecked (TrackerDBInterface *db_inter
*/
g_hash_table_replace (db_interface->dynamic_statements,
(gpointer) sqlite3_sql (stmt->stmt),
- stmt);
+ g_object_ref_sink (stmt));
/* So the ring looks a bit like this: *
* *
@@ -2184,7 +2184,7 @@ tracker_db_interface_create_statement (TrackerDBInterface *db_interfac
g_free (full_query);
- return (cache_type != TRACKER_DB_STATEMENT_CACHE_TYPE_NONE) ? g_object_ref (stmt) : stmt;
+ return g_object_ref_sink (stmt);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]